- Musisz mieć spację między nazwą tabeli a kolejnym
WHERE
klauzula INTO
musi być częściąEXECUTE IMMEDIATE
, nie jest częścią dynamicznej instrukcji SQL.- Dynamiczna instrukcja SQL nie powinna mieć końcowego średnika
EXECUTE IMMEDIATE
oświadczenie powinno kończyć się średnikiem
Łącząc je razem, coś takiego powinno działać
declare
VR_TABLE VARCHAR2(256);
VR_UPDATE VARCHAR2(256);
begin
VR_TABLE :='SYSTEM_STATUS';
EXECUTE IMMEDIATE 'select UPDATE_VERSION from ' || VR_TABLE || ' where rownum < 2'
INTO VR_UPDATE;
end;
Oczywiście, ponieważ nic nie robisz z VR_UPDATE
, nic nie zostanie wyświetlone, gdy ten anonimowy blok zostanie wykonany.