Oracle
 sql >> Base de données >  >> RDS >> Oracle

exécuter la chaîne en tant que requête dans oracle

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 .