内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-00942常见语法
表或视图不存在
Table or view does not exist
错误描述
引用的表或视图在当前 schema 中不存在,或者用户缺少对其的 SELECT 权限。
可能原因
- 表或视图确实不存在(名称拼写错误)
- 对象存在于不同的 schema 中,且未使用同义词或 schema 前缀
- 用户缺少对象的 SELECT 或 READ 权限
- 对象已被删除或尚未创建
解决方案
- 1验证对象存在:SELECT owner, object_name FROM dba_objects WHERE object_name = 'TABLE_NAME';
- 2授予必要权限:GRANT SELECT ON schema.table TO user;
- 3如果跨 schema 访问,创建同义词:CREATE SYNONYM table_name FOR schema.table_name;
诊断命令
SELECT owner, object_name, object_type, status FROM dba_objects WHERE object_name = UPPER('TABLE_NAME');SELECT grantee, privilege FROM dba_tab_privs WHERE table_name = UPPER('TABLE_NAME');#table#view#not-exist#privilege#synonym