Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle SQL:variabili utilizzate al posto dei nomi delle tabelle

  1. Devi avere uno spazio tra il nome della tabella e il successivo WHERE clausola
  2. Il INTO deve far parte di EXECUTE IMMEDIATE , non fa parte dell'istruzione SQL dinamica.
  3. L'istruzione SQL dinamica non dovrebbe avere un punto e virgola finale
  4. Il EXECUTE IMMEDIATE l'istruzione dovrebbe terminare con un punto e virgola

Mettendoli insieme, qualcosa del genere dovrebbe funzionare

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;

Ovviamente, dal momento che non stai facendo nulla con VR_UPDATE , non verrà visualizzato nulla quando viene eseguito questo blocco anonimo.