sql >> Base de Datos >  >> RDS >> Oracle

Oracle SQL:variables utilizadas en lugar de nombres de tablas

  1. Debe dejar un espacio entre el nombre de la tabla y el subsiguiente WHERE cláusula
  2. El INTO debe ser parte de EXECUTE IMMEDIATE , no forma parte de la instrucción SQL dinámica.
  3. La instrucción de SQL dinámico no debe tener un punto y coma al final
  4. El EXECUTE IMMEDIATE declaración debe terminar con un punto y coma

Poniéndolos juntos, algo como esto debería 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;

Por supuesto, ya que no estás haciendo nada con VR_UPDATE , no se mostrará nada cuando se ejecute este bloque anónimo.