回答

收藏

Oracle为什么不告诉您WHICH表还是视图不存在?

技术问答 技术问答 447 人阅读 | 0 人回复 | 2023-09-14

假如你用过Oracle, ORA-00942:表或视图不存在。消息中不包含缺失对象的名称是否有合法的技术原因?
# e9 t5 ^9 H$ m: g( Y关于这件事的争论是由于安全的声音,就像它们是由TSA同样精心制作。如果我是一个攻击者,我会知道我只是试图使用哪个手表,并且很容易解释这个无用的消息。如果我是一名开发人员,需要通过几层应用程序代码进行复杂的连接,通常很难说。
$ M/ r4 N# f+ M( C' s; d我的猜测是,当这个错误最初实现时,有些人忽略了添加对象的名称,现在,人们担心它会破坏兼容性来修复它。(如果代码发生变化,执行愚蠢的代码,如分析错误信息,将被混淆。/ x! Z/ q; h7 X" |0 }
开发人员是否有友好的方法(而不是招聘)DBA)确定丢失表的名称?3 \6 ?. f9 F( E& U6 {" ?! P  R
虽然我已经接受了与主题相关的答案,但它并没有真正回答我的问题: 为什么错误消息中的名字不是部分?    如果有人能提出真正的答案,我将很乐意更改我的投票。( o/ H* |1 X' r1 N" }1 X' ~
                                                                3 G& o1 E/ e  I. C" Y
    解决方案:                                                               
1 N7 V  l* Z8 C                                                                您可以在参数文件(纯文本或spfile)中设置EVENT,以强制Oracle在user_dump_dest如果非SQL,对象名称可能在其中。
$ j6 D' i& c: Q3 Q1 C% q5 x+ T1 DEVENT = 942跟踪名称错误堆栈级别12
) e- [6 |4 l+ I! q, j# ]7 L如果你使用纯文本文件,你需要使用所有文本EVENT设置保持在连续行上。不确定如何将其应用于spfile。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则