现象:
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
);
/
|