- Трябва да имате интервал между името на таблицата и последващия
WHERE
клауза INTO
трябва да бъде част отEXECUTE IMMEDIATE
, а не част от динамичния SQL израз.- Динамичният SQL оператор не трябва да има точка и запетая в края
EXECUTE IMMEDIATE
изразът трябва да завършва с точка и запетая
Събирайки ги заедно, нещо подобно би трябвало да работи
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;
Разбира се, тъй като не правите нищо с VR_UPDATE
, нищо няма да се покаже, когато този анонимен блок бъде изпълнен.