PL / SQL:ORA-04063:查看“OPS $ DTEPROD.DTE_BLMB_TRD_ACCT_VW”

时间:2017-07-25 15:46:52

标签: oracle

我有一个创建(ORACLE)

的视图
CREATE OR REPLACE FORCE VIEW "OPS$DTEPROD"."DTE_BLMB_TRD_ACCT_VW"     
                ("BB_TRD_ACCT", "DESCRIPTION", "ICI_TRD_ACCT") AS    
select  rtrim(STRBK_BOOK_NAME) bb_trd_acct, 
        rtrim(STRBK_DESCRIPTION)    description, 
        trading_acct ici_trd_acct   
from    spider.sp_struct_books@spdn b1
        , dte_trading_acct   
where   substr(rtrim(STRBK_BOOK_NAME),1,2)=ltrim(rtrim(fits_trading_Acct))   
and     strbk_last_update_date =   
          (select max(strbk_last_update_date) 
                from spider.sp_struct_books@spdn b2   
                 where   b2.strbk_book_number = b1.strbk_book_number)   

在包中,当我编译它时会显示错误

  

328/117 PL / SQL:ORA-04063:查看“OPS $ DTEPROD.DTE_BLMB_TRD_ACCT_VW”已发表评论            错误

你能帮我找到原因吗?

由于

Errors for PACKAGE BODY RATES_2DTE:    

LINE/COL ERROR    
-------- -----------------------------------------------------------------    
328/1    PL/SQL: SQL Statement ignored    
328/117  PL/SQL: ORA-04063: view "OPS$DTEPROD.DTE_BLMB_TRD_ACCT_VW" has
     errors    

3 个答案:

答案 0 :(得分:0)

请与获得概述错误的同一用户执行以下查询:

 Select * from user_errors where name like 'OPS$DTEPROD.DTE_BLMB_TRD_ACCT_VW';

这会在视图中显示错误。您可以发布输出以供进一步调查。

此致 ABHI

答案 1 :(得分:0)

为了解决这个问题,我必须与我们的DBA合作。只有他们可以从开发服务器访问此数据库。在生产中我们已经完成了所有工作。

谢谢大家帮助我

答案 2 :(得分:0)

他们有两种可能性: 1)正如另一个成员(@xQbert)建议的那样 - 用于创建视图的用户无法通过dB链接访问表。

2)无法访问数据库链接中使用的数据库。

解决方案: 1)请尝试从视图中选择的同一用户执行以下语句:

Select count(*) from spider.sp_struct_books@spdn  ; 

这应该给出与原始错误相同的错误。

我们要检查目的地表的读取权限是否到位。

2)从数据库主机上的服务器/命令提示符处创建视图,执行以下命令:

tnsping spdn (or tnsping <database name usec by db link>) 

OR

sqlplus <Username>/<Password>@spdn (or <database name usec by db link>) 

我们想检查dBlink上的目标数据库是否可以访问。

  • ABHI