När du execute immediate
, kommandot du kör ska inte ha ett semikolon i slutet; som är en kommandoseparator i SQL Developer (och SQL *Plus
, och andra klienter), inte en del av själva SQL-satsen.
SELECT 'CREATE SEQUENCE ID_SEQ MINVALUE 1 MAXVALUE 9999999999 START WITH '
|| (max(ID)+1) || ' INCREMENT BY 1 CACHE 20' INTO y FROM TEST_TABLE;
Detta visas i exempel för vanlig SQL . Men bara för att hjälpa dig att förvirra dig, om du använder PL/SQL inom dynamisk SQL, behöver du fortfarande semikolon som är lämpliga för PL/SQL själv - dock inte den exekverande /
du skulle använda för att köra det direkt från en klient. Detta visas i andra exempel
.