Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SQL:Variablen, die anstelle von Tabellennamen verwendet werden

  1. Zwischen dem Tabellennamen und dem nachfolgenden WHERE muss ein Leerzeichen stehen Klausel
  2. Der INTO muss Teil von EXECUTE IMMEDIATE sein , nicht Teil der dynamischen SQL-Anweisung.
  3. Die dynamische SQL-Anweisung sollte kein nachgestelltes Semikolon haben
  4. Der EXECUTE IMMEDIATE sollte mit einem Semikolon enden

Wenn Sie diese zusammenfügen, sollte so etwas funktionieren

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;

Natürlich, da Sie mit VR_UPDATE nichts machen , wird nichts angezeigt, wenn dieser anonyme Block ausgeführt wird.