Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  ps_in_func-package.result   Sprache: Lisp

 

#
# MDEV-39518 Allow prepared statements in stored functions in assignment right hand
#
#
# MDEV-40288 PACKAGE BODY initialization section that contains dynamic SQL fails with ER_NO_SUCH_TABLE for a table that exists
#
#
# Calling PS in the package instantiating section is not allowed from a function
#
SET sql_mode=ORACLE;
SET @px_cnt=NULL;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1);
CREATE PACKAGE pkg1 AS
FUNCTION f RETURN INT;
END;
$$
CREATE PACKAGE BODY pkg1 AS
FUNCTION f RETURN INT AS
BEGIN
RETURN 42;
END;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM t1 INTO @px_cnt';
END;
$$
CREATE PROCEDURE p1() AS
v INT;
BEGIN
v := pkg1.f();
END;
$$
CALL p1();
ERROR 0A000: Dynamic SQL is not allowed in stored function or trigger
DROP PROCEDURE p1;
DROP PACKAGE pkg1;
DROP TABLE t1;
SELECT @px_cnt;
@px_cnt
NULL
#
# Calling PS in the package instantiating section is OK from a procedure
#
SET sql_mode=ORACLE;
SET @px_cnt=NULL;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1);
CREATE PACKAGE pkg1 AS
PROCEDURE p1;
END;
$$
CREATE PACKAGE BODY pkg1 AS
PROCEDURE p1 AS BEGIN
SET @a=10;
END;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM t1 INTO @px_cnt';
END;$$
CREATE PROCEDURE p1() AS
v INT;
BEGIN
CALL pkg1.p1;
END;
$$
CALL p1();
DROP PROCEDURE p1;
DROP PACKAGE pkg1;
DROP TABLE t1;
SELECT @px_cnt;
@px_cnt
1
SET sql_mode=DEFAULT;
#
# A function with dynamic SQL instantiates a package body
#
SET sql_mode=ORACLE;
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, a VARCHAR(32));
CREATE PACKAGE pkg1 AS
FUNCTION f1() RETURN INT;
END;
$$
CREATE PACKAGE BODY pkg1 AS
FUNCTION f1() RETURN INT AS
BEGIN
EXECUTE IMMEDIATE 'INSERT INTO t1 (a) VALUES(''func pkg1.f1'')';
RETURN ROW_COUNT();
END;
BEGIN
INSERT INTO t1 (a) VALUES ('package body pkg1');
END;
$$
CREATE PROCEDURE p1 AS
a INT;
BEGIN
a:= pkg1.f1();
SELECT a;
END;
$$
CALL p1;
a
1
SELECT * FROM t1 ORDER BY id;
id a
1 package body pkg1
2 func pkg1.f1
DROP PROCEDURE p1;
DROP PACKAGE pkg1;
DROP TABLE t1;
SET sql_mode=DEFAULT;
# End of 13.1 tests

Messung V0.5 in Prozent
C=50 H=100 G=79

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691