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

ORA-00942:tabla o vista no existe... ¿puedo obtener más detalles?

Si se compila el procedimiento PL/SQL, debe existir cualquier tabla a la que se haga referencia directamente. Supongo que es SQL dinámico. Si usa DBMS_SQL, puede usar LAST_ERROR_POSITION . Si está utilizando EJECUTAR INMEDIATAMENTE y tiene su SQL en una variable útil, haga que su código haga algo como:

begin
  execute immediate v_sql;
exception
  when others then
    declare
      v_cur BINARY_INTEGER;
    begin
      v_cur := dbms_sql.open_cursor;
      dbms_sql.parse (v_cur, v_sql, dbms_sql.native);
    exception
      when others then
        dbms_output.put_line (sqlerrm || ' near pos ' ||
                     substr(v_sql,dbms_sql.last_error_position -10,40));
        dbms_sql.close_cursor (v_cur);
        raise;
    end;
end;