Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle SQL:variáveis ​​usadas no lugar de nomes de tabelas

  1. Você precisa ter um espaço entre o nome da tabela e o subsequente WHERE cláusula
  2. O INTO precisa fazer parte do EXECUTE IMMEDIATE , não faz parte da instrução SQL dinâmica.
  3. A instrução SQL dinâmica não deve ter um ponto e vírgula à direita
  4. O EXECUTE IMMEDIATE declaração deve terminar com um ponto e vírgula

Juntando-os, algo assim deve funcionar
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;

Claro, já que você não está fazendo nada com VR_UPDATE , nada será exibido quando este bloco anônimo for executado.