代码之家  ›  专栏  ›  技术社区  ›  Manius

对于这个例子来说,Oracle的错误反馈是糟糕的,这有什么合理的原因吗?[关闭]

  •  0
  • Manius  · 技术社区  · 14 年前

    ORA-00942: table or view does not exist : How do I find which table or view it is talking about

    SQL错误:ORA-00942:表或视图不存在

    当使用像Hibernate这样的ORM库时,来自Oracle的模糊错误消息并不完全是一次千载难逢的经历。为什么Oracle不简单地提及不存在的表或视图的名称?为什么所有的审计和其他复杂的“解决方案”都张贴在示例问题中?

    简言之:甲骨文的错误反馈看起来很差,有没有一些合理的、技术上的解释,或者这更可能是甲骨文由于其近乎“垄断”的人气地位而缺乏改进动力的结果?(还是其他?与ORM开发人员和DB供应商缺乏协调?)

    2 回复  |  直到 7 年前
        1
  •  3
  •   thecoop    14 年前

    缺少表名可能有助于防止代码知识泄漏。典型示例—如果某个Web应用程序的代码编写错误,并且向用户显示了这样一个传播到顶级的错误,那么一个邪恶的人就可以使用它来SQL注入站点或做其他不好的事情。

        2
  •  1
  •   APC    14 年前

    “简言之:是否有一些理性, 甲骨文的技术说明 这是不是更像是 由于他们几乎 ‘垄断’的人气状况?”

    请记住,甲骨文是一种古老的技术,可以追溯到三十年前。有一个庞大的现存代码库。因此,改变基本行为可能会产生广泛的影响。

    你认为这是一个“理性”还是“技术”的解释是一个品味的问题。

    我们大多数使用Oracle数据库的人都学会了忍受它的怪癖。例如,要揭示导致ORA-00942错误的表很简单:

    prompt Dropping non_existent_table
    
    drop table non_existent_table
    /
    

    “这也引出了 OSS)DBs提供更好的反馈”