You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DBMS_ERRLOG.CREATE_ERROR_LOG创建错误日志表时提示表或视图不存在

使用DBMS_ERRLOG.CREATE_ERROR_LOG报错"table or view does not exist"

问题场景

执行DBMS_ERRLOG.CREATE_ERROR_LOG创建错误日志表时,触发错误提示table or view does not exist,先后尝试了两种写法:

  1. PL/SQL块写法:
Begin
dbms_errlog.create_error_log(dml_table_name => 'table_name');
End;
/
  1. EXEC命令写法:
exec dbms_errlog.create_error_log(dml_table_name => 'table_name');

排查与解决方法

  • 验证目标表存在性
    先确认table_name拼写无误,Oracle表名默认自动转为大写存储,可执行以下SQL验证:

    SELECT table_name FROM all_tables WHERE table_name = 'TABLE_NAME'; -- 替换为大写的目标表名
    

    如果表属于其他用户,需加上所有者前缀查询,比如WHERE owner = 'SCOTT' AND table_name = 'EMP'。

  • 指定表的所有者(跨Schema场景)
    若目标表不在当前用户的Schema下,必须在参数中明确指定所有者,示例:

    exec dbms_errlog.create_error_log(dml_table_name => 'SCOTT.EMP');
    
  • 检查权限
    当前用户需具备:

    • CREATE TABLE权限(用于创建错误日志表)
    • 目标表的SELECT权限
  • 处理大小写敏感的表名
    如果目标表是用双引号创建的大小写混合名称,必须在参数中用双引号包裹,示例:

    exec dbms_errlog.create_error_log(dml_table_name => '"MyCustomTable"');
    

内容的提问来源于stack exchange,提问作者Piyush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:34:54