重庆思庄Oracle、Redhat认证学习论坛

标题: After Upgrade to 11.2.0.4 Unable to Delete Any Rows from Table with Context I... [打印本页]

作者: 刘泽宇    时间: 2024-6-30 17:34
标题: After Upgrade to 11.2.0.4 Unable to Delete Any Rows from Table with Context I...
现象:
After database upgrade to 11.2.0.4 cannot delete any rows from a table with context index due to PLS-306 error:


SQL> delete from foo where a=1;

1 row deleted.

SQL> commit;
commit
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SYNCRN'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


改动:
Database has been upgraded to 11.2.0.4, applied Patch 13390677

原因:
The cause of this problem has been analyzed in unpublished Bug 17501296. Commit callback procedure ctxsys.syncrn is not in sync with 11.2.0.4 C-code

处理方法:
To resolve the problem apply Patch 17501296 or recreate ctxsys.syncrn procedure as below:

connect / as sysdba
alter session set current_schema=CTXSYS;

create or replace procedure syncrn (
  ownid IN binary_integer,
  oname IN varchar2,
  idxid IN binary_integer,
  ixpid IN binary_integer,
  rtabnm IN varchar2,
  srcflg IN binary_integer,
  smallr IN binary_integer
)
  authid definer
  as external
  name "comt_cb"
  library dr$lib
  with context
  parameters(
    context,
    ownid  ub4,
    oname  OCISTRING,
    idxid  ub4,
    ixpid  ub4,
    rtabnm OCISTRING,
    srcflg ub1,
    smallr ub1
);
/






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2