不是bug的bug?

我们先看如下的一系列执行:

SQL> create or replace view v_bmw_pay_online_new as
  2  select *
  3  from taobao.bmw_pay_online_new@lnk_db215;
 
SQL> create or replace procedure sp_v_test is
  2  v_id number;
  3  begin
  4     select id into v_id from v_bmw_pay_online_new where id=1;
  5  end;
  6  /

Procedure created

SQL> create or replace synonym s_bmw_pay_online_new
  2        for taobao.bmw_pay_online_new@lnk_db215;

Synonym created

SQL> create or replace procedure sp_s_test is
  2  v_id number;
  3  begin
  4     select id into v_id from s_bmw_pay_online_new where id=1;
  5  end;
  6  /

Warning: Procedure created with compilation errors

SQL> show error
Errors for PROCEDURE TAOBAO.SP_S_TEST:

LINE/COL ERROR
-------- ------------------------------------------------------------------------------------
4/29     PL/SQL: ORA-00600: 内部错误代码,参数: [17069], [0x57E77854], [], [], [], [], [], []
4/4      PL/SQL: SQL Statement ignored


可以看到,在同样一个远程对象上面,我可以通过创建视图,然后在该视图上创建存储过程,是没有任何问题的,但是如果我对该远程操作做一个同义词,再在同义词上创建存储过程,则报出了Ora-00600。跟踪也无果,看产生的日志文件也不能看出来什么,上metalink,搜索"ora-00600 17069",发现查出现的东西一大堆,大致是library cache错误,但是到底怎么会产生这个错误呢,online联系上一个oracle在线技术支持,聊了一会儿,问题是解决了,但是他就是不承认是bug,呵呵。

以下是聊天的总结:
ORA-00600 [17069] reorted on compiling a procedure.

Invalid lock in library cache.
Unable to pin the object and hence the Error.

<Note:39616.1> "Failed to pin a library cache object after 50 attempts"

Clearing the shared memory will help to get rid of inconsistant information in memory which is causing the error.

The inconsistency was suspected to be in the remote site. But flushing the shared pool in remote location didnt help.
Tried recreation of the procedure after dropping and recreating the synonym in the local database. But the same failed.
Flushed the shared pool in local database abd successfully created the procedure.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值