DDL-Anweisungen in PL/SQL?

Ich versuche den folgenden code zum erstellen einer Tabelle in PL/SQL:

DECLARE
    V_NAME VARCHAR2(20);
BEGIN
    EXECUTE IMMEDIATE 'CREATE TABLE TEMP(NAME VARCHAR(20))';
    EXECUTE IMMEDIATE 'INSERT INTO TEMP VALUES(''XYZ'')';
    SELECT NAME INTO V_NAME FROM TEMP;
END;
/

Den SELECT - Anweisung schlägt fehl mit dieser Fehlermeldung:

PL/SQL: ORA-00942: table or view does not exist

Ist es möglich CREATE, INSERT and SELECT alle in einer einzigen PL/SQL-Block eine nach der anderen?

warum Sie mit dynamischen sql? es mehr langsamer und gefährlich. und einfügen funktioniert?
Das ist eine schlechte Idee. Es ist ein gemeinsames Konstrukt, in einigen anderen Geschmacksrichtungen von RDBMS wie SQL Server, aber Oracle bietet bessere Ansätze. Für mehr Einblick Lesen Sie diese alte Antwort von mir: stackoverflow.com/a/1193443/146325

InformationsquelleAutor Aspirant | 2012-06-30

Schreibe einen Kommentar