【发布时间】:2011-03-07 11:51:39
【问题描述】:
有时当我在 Oracle SQL Developer 中浏览视图或包时,它们旁边会有一个红色图标,表示存在编译错误。这似乎随机发生在编译时没有任何错误或警告的对象上。
即使使用红色图标,它们也会继续工作,但这很令人困惑,让我怀疑我是否遗漏了什么。我该怎么做才能找出这些对象被标记为有问题的原因?
【问题讨论】:
标签: oracle packages oracle-sqldeveloper
有时当我在 Oracle SQL Developer 中浏览视图或包时,它们旁边会有一个红色图标,表示存在编译错误。这似乎随机发生在编译时没有任何错误或警告的对象上。
即使使用红色图标,它们也会继续工作,但这很令人困惑,让我怀疑我是否遗漏了什么。我该怎么做才能找出这些对象被标记为有问题的原因?
【问题讨论】:
标签: oracle packages oracle-sqldeveloper
我也见过;大多数情况下,子过程被修改并需要编译。
【讨论】:
Oracle SQL Developer 并不是最好的软件工程。总的来说,我认为 oracle 应该只做他们可以做的好事,那就是数据库;)只是这样说是为了表明我不会太担心这些故障。
我自己没有看到这个问题,但我可以想象当这个包使用的数据库对象(例如表)被改变时会发生这种情况。即使包仍然可以编译,oracle 也会以某种方式标记它们。在 jdbc 中,您将在第一次调用包时收到“包的现有状态已被丢弃”消息。只是一个猜测,它可能只是一个错误,我不会想太多,看看他们的 java 产品的质量;)
【讨论】:
Oracle 将即时重新编译无效包 - 这就是为什么无效包通常可以正常工作的原因。
正如其他人所指出的,如果任何引用的对象被更改,包将变得无效。包可能编译干净,也可能编译不干净 - 这取决于对象的更改方式。
【讨论】: