- Vous devez avoir un espace entre le nom de la table et le
WHERE
suivant clause - Le
INTO
doit faire partie duEXECUTE IMMEDIATE
, ne fait pas partie de l'instruction SQL dynamique. - L'instruction SQL dynamique ne doit pas comporter de point-virgule à la fin
- Le
EXECUTE IMMEDIATE
l'instruction doit se terminer par un point-virgule
En les rassemblant, quelque chose comme ça devrait fonctionner
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;
Bien sûr, puisque vous ne faites rien avec VR_UPDATE
, rien ne s'affichera lors de l'exécution de ce bloc anonyme.