无效对象及其在应用程序中会导致什么问题?

Invalid Objects and What issue they can cause in application?

我只是想了解一些来自 Oracle ebs 12.1.3 的无效对象。该列表是

  1. CST_LAYER_ACTUAL_COST_DTLS_V
  2. IGW_BUDGET_CATEGORY_V
  3. IGW_REPORT_PROCESSING
  4. FV_FACTS_TBAL_TRX
  5. FV_FACTS_TRX_REGISTER
  6. FV_SF133_ONEYEAR
  7. FV_SF133_NOYEAR
  8. FV_FACTS_TRANSACTIONS
  9. FV_FACTS_TBAL_TRANSACTIONS
  10. ENI_DBI_CO_OBJIDS_MV
  11. PJI_TIME_PA_RPT_STR_MV
  12. POA_MID_BS_J_MV
  13. POA_IDL_BS_J_MV
  14. POA_ITEMS_MV
  15. GL_ACCESS_SET_LEDGERS
  16. LNS_LOAN_DTLS_ALL_MV
  17. OZF_CUST_FUND_SUMMARY_MV
  18. FV_SLA_FV_PROCESSING_PKG
  19. OE_ITEMS_MV
  20. PA_DEDUCTIONS_W
  21. PA_DEDUCTIONS_PUB
  22. PA_DEDUCTIONS_PUB
  23. PA_DEDUCTIONS_W
  24. PA_DCTN_APRV_NOTIFICATION

--对象类型--

CST_LAYER_ACTUAL_COST_DTLS_V    VIEW 
IGW_BUDGET_CATEGORY_V   VIEW 
IGW_REPORT_PROCESSING   
PACKAGE BODY FV_FACTS_TBAL_TRX  PACKAGE BODY 
FV_FACTS_TRX_REGISTER   PACKAGE BODY 
FV_SF133_ONEYEAR    PACKAGE BODY 
FV_SF133_NOYEAR PACKAGE BODY 
FV_FACTS_TRANSACTIONS   
PACKAGE BODY FV_FACTS_TBAL_TRANSACTIONS PACKAGE BODY 
ENI_DBI_CO_OBJIDS_MV    MATERIALIZED VIEW 
PJI_TIME_PA_RPT_STR_MV  MATERIALIZED VIEW 
POA_MID_BS_J_MV MATERIALIZED VIEW
POA_IDL_BS_J_MV MATERIALIZED VIEW 
POA_ITEMS_MV    MATERIALIZED VIEW 
GL_ACCESS_SET_LEDGERS   MATERIALIZED VIEW 
LNS_LOAN_DTLS_ALL_MV    MATERIALIZED VIEW 
OZF_CUST_FUND_SUMMARY_MV    MATERIALIZED VIEW 
FV_SLA_FV_PROCESSING_PKG    PACKAGE BODY 
NIB_MV_TB   MATERIALIZED VIEW 
OE_ITEMS_MV MATERIALIZED VIEW 
PA_DEDUCTIONS_W PACKAGE 
PA_DEDUCTIONS_PUB   PACKAGE 
PA_DEDUCTIONS_PUB   PACKAGE BODY 
PA_DEDUCTIONS_W PACKAGE BODY 
PA_DCTN_APRV_NOTIFICATION   PACKAGE BODY

所以我想知道如果我让它们无效,它们会导致什么问题?

我了解自己的步骤:-

我已经通过对象名称搜索了 Oracle 支持和 google,但我得到的唯一结果是没有补丁可以解决问题,或者在某些情况下忽略这些对象它们将无能为力。

如果有人知道有关这些对象的信息以及它们可能在应用程序中引起什么问题。请分享。

提前致谢!!!

Tom Kyte,著名的 Oracle 专家,says

They will fix themselves as they are executed or accessed. I never worry about some invalid objects -- you'll almost always have some somewhere.

这通常是正确的,只要:

  • 数据库安装正确
  • 补丁和升级已正确安装
  • 您没有更改 oracle 前端代码或 oracle 数据库代码
  • 正在输入的数据仍在预期范围内

无效的实体化视图通常并不重要。在 9、10 和 11 中,一旦将新数据添加到基础表中,它们就会变得无效。即使无效也可以使用

访问时会编译无效视图,如果没有错误,则可以使用。

包和包主体也是如此:如果没有错误,它们会在访问时编译。您的前端如何在编译之前处理错误消息对于所有应用程序都是不一样的。如果您尝试访问由于代码错误而无法编译的包,那么您将不会得到任何结果,并且会返回 PL/SQL 错误。

查看问题的原因:

  • 手动编译所有无效对象或使用 dbms_utility.compile_schema( 'YourSchema' );
  • 对于无法编译的任何内容,您可以通过查询找到更多信息

    select * 来自 all_errors:

如果您在 Oracle 提供的对象中发现错误,则必须确定来源:

  • 安装或修补不正确
  • 应该修补的已知 Oracle 错误
  • 可以忽略的已知 Oracle 错误
  • 其他不在问题范围内的原因