Oracle SQL: les variables utilisées à la place des noms de table
Je suis de la conversion d'un MSSQL script pour Oracle, et je n'ai pas été en mesure de comprendre la syntaxe à utiliser une variable à la place d'un nom de table ou de colonne.
Voici un exemple simple que j'ai essayer de faire le travail dans Oracle SQL Developer afin que je puisse mieux comprendre la syntaxe:
set serveroutput on format wrapped;
declare
VR_TABLE VARCHAR2(256);
VR_UPDATE VARCHAR2(256);
begin
VR_TABLE :='SYSTEM_STATUS';
EXECUTE IMMEDIATE 'select UPDATE_VERSION INTO VR_UPDATE from ' || VR_TABLE || 'where rownum < 2 ;'
end;
Où VR_TABLE est la variable nom de la table qui sera modifiée à chaque itération de la boucle.
Quelqu'un peut-il point de ce que je fais mal, ou de me lier à un site qui pourrait m'être utile pour lire? J'ai lu quelques tutoriels sur ce sujet, mais je n'ai pas eu de chance jusqu'à présent.
OriginalL'auteur OrangeGrover | 2012-07-23
Vous devez vous connecter pour publier un commentaire.
WHERE
clauseINTO
doit faire partie de laEXECUTE IMMEDIATE
, ne fait pas partie de l'instruction SQL dynamique.EXECUTE IMMEDIATE
instruction doit se terminer par un point-virguleMettre ensemble, quelque chose comme cela devrait fonctionner
Bien sûr, puisque vous ne faites rien avec
VR_UPDATE
, rien ne sera affiché lorsque ce bloc anonyme est exécutée.OriginalL'auteur Justin Cave