Lorsque vous execute immediate
, la commande que vous exécutez ne doit pas se terminer par un point-virgule ; qui est un séparateur de commandes dans SQL Developer (et SQL *Plus
, et d'autres clients), ne faisant pas partie de l'instruction SQL elle-même.
SELECT 'CREATE SEQUENCE ID_SEQ MINVALUE 1 MAXVALUE 9999999999 START WITH '
|| (max(ID)+1) || ' INCREMENT BY 1 CACHE 20' INTO y FROM TEST_TABLE;
Ceci est illustré dans les exemples pour SQL brut . Juste pour vous aider à vous embrouiller, si vous utilisez PL/SQL dans le SQL dynamique, vous avez toujours besoin de points-virgules appropriés à PL/SQL lui-même - mais pas l'exécution /
vous utiliseriez pour l'exécuter directement à partir d'un client. Ceci est illustré dans autres exemples
.