Oracle/PLSQL: mensaje de error ORA-00942

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: mensaje de error ORA-00942

Aprenda por qué y cómo resolver los mensajes de error ORA-00942 en Oracle.

describir

Cuando encuentra un error ORA-00942, aparece el siguiente mensaje de error:

  • ORA-00942: tabla o vista no existe

razón

La instrucción SQL que intenta ejecutar hace referencia a una tabla o vista que no existe, a la que no tiene acceso o pertenece a otro esquema y no hizo referencia a la tabla por nombre de esquema.

resolver

Las opciones para resolver este error de Oracle incluyen:

Opción 1

Si se produce este error porque la tabla o vista no existe, es necesario crear la tabla o vista.

Puede verificar si la tabla existe en Oracle ejecutando la siguiente declaración SQL:

SELECT *
FROM all_objects
WHERE object_type IN ('TABLE','VIEW')
AND object_name="OBJECT_NAME";

Por ejemplo, si estuviera buscando en la tabla de proveedores, haría lo siguiente:

SELECT *
FROM all_objects
WHERE object_type IN ('TABLE','VIEW')
AND object_name="SUPPLIERS";

Opcion 2

Si se produce este error porque no tiene acceso a la tabla o vista, necesitará que el propietario de la tabla/vista o el DBA le otorguen los permisos adecuados sobre el objeto.

Opción #3

Si se produce este error porque la tabla/vista pertenece a otro esquema y no está haciendo referencia a la tabla por el nombre del esquema, deberá volver a escribir el SQL para incluir el nombre del esquema.

Por ejemplo, es posible que haya ejecutado la siguiente instrucción SQL:

SELECT *
FROM suppliers;

Pero la tabla de proveedores no es de su propiedad, sino de un esquema llamado aplicación, puede arreglar su SQL de la siguiente manera:

SELECT *
FROM app.suppliers;

Si no sabe a qué esquema pertenece la tabla/vista de proveedores, puede realizar la siguiente búsqueda de SQL:

SELECT owner
FROM all_objects
WHERE object_type IN ('TABLE','VIEW')
AND object_name="SUPPLIERS";

Esto devolverá el nombre de esquema que posee la tabla de proveedores.