Instructions DDL en PL/SQL?

Je suis en train d'essayer le code ci-dessous pour créer une table dans 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;
/

La SELECT instruction échoue avec ce message d'erreur:

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

Est-il possible de CREATE, INSERT and SELECT le tout dans un seul PL/SQL Bloquer l'un après l'autre?

  • pourquoi vous utilisez sql dynamique? il est plus lent et dangereux. et insérer les œuvres?
  • C'est une mauvaise idée. C'est une commune de construire dans certains autres saveurs de SGBDR tels que SQL Server, mais Oracle offre la meilleure des approches. Pour plus d'informations lire cette vieille réponse de la mine: stackoverflow.com/a/1193443/146325
InformationsquelleAutor Aspirant | 2012-06-30