如果您使用过Oracle,可能会收到有用的消息"ORA-00942:表或视图不存在".有没有正当的技术原因导致消息中没有包含丢失对象的名称?

关于这是由于安全原因的争论听起来像是TSA精心策划的.如果我是一个攻击者,我就知道我刚刚试图利用哪个表,并且能够轻松地解释这个没有帮助的消息.如果我是一名通过多层应用程序代码处理复杂连接的开发人员,通常很难判断.

我的猜测是,当这个错误最初被实现时,有人忽略了添加对象名,现在,人们担心修复它会 destruct 兼容性.(如果错误消息发生变化,执行诸如解析错误消息等愚蠢操作的代码将被混淆.)

是否有一种开发人员友好的(而不是招募DBA)方法来确定缺少的表的名称?


虽然我接受了一个与主题相关的答案,但它并没有真正回答我的问题:如果有人能给出真正的答案,我很乐意改变我的投票.

推荐答案

您可以在参数文件(纯文本或spfile)中设置一个事件,以强制Oracle在user_dump_dest中转储一个详细的跟踪文件,如果SQL不在,对象名可能在其中.

EVENT="942跟踪名称错误堆栈级别12"

如果使用纯文本文件,则需要将所有事件设置保持在连续行上.不确定这是如何应用于spfile的.

Sql相关问答推荐

当编号和版本的唯一状态更改时报告

Select /过滤postgr中的树 struct

如何从上一个值减go 值

如何在snowflake中进行SQL的反向填充

UPDATE查询中的乐观锁

用户购买平台及金额统计

根据时间、状态和相关行在PostgreSQL中的存在来删除行

需要从键-值对数据中提取值

最小非重复集的SQL查询

在SQL中将项分配给容器

使用同一个表,为什么IN、NOT IN、NOT EXISTS和EXISTS有不同的输出?

使用左外部联接更正列中第+1行的值时重复

在 PostgreSQL 中生成时间序列查询

GRAFANA 数据库查询错误:pq:列名称不存在

在 SQL Server 中合并两个 XML 列

snowflake中的动态文件名生成

Postgresql 需要一个查询,为我提供所有没有具有特定状态值的子元素的父母

SQL Select 最大并获取列名

如果 SQL 中不存在数据,如何根据某个 ID 为所有日期添加前一行

如何使用 pg-promise 创建要在复杂的 sql 查询中使用的 VALUES 列表?