Когато execute immediate
, командата, която изпълнявате, не трябва да има точка и запетая в края; това е разделител на команди в SQL Developer (и SQL *Плюс
и други клиенти), които не са част от самия SQL израз.
SELECT 'CREATE SEQUENCE ID_SEQ MINVALUE 1 MAXVALUE 9999999999 START WITH '
|| (max(ID)+1) || ' INCREMENT BY 1 CACHE 20' INTO y FROM TEST_TABLE;
Това е показано в примери за обикновен SQL . Само за да ви объркам обаче, ако използвате PL/SQL в рамките на динамичния SQL, все още се нуждаете от точки и запетая, подходящи за самия PL/SQL - макар и не от изпълняващия /
бихте използвали, за да го стартирате директно от клиент. Това е показано в други примери
.