我有一个创建(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
答案 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上的目标数据库是否可以访问。