En caso de tener el error siguiente el crear un indixe: CONTEXT
INDEXTYPE IS CTXSYS.CONTEXT
ERROR at line 1:
ORA-24795: Illegal COMMIT attempt made
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
ORA-24795: Illegal ROLLBACK attempt made
DRG-50857: oracle error in dreii0fsh
ORA-06550: line 1, column 106:
PLS-00302: component 'S_MODE' must be declared
ORA-06550: line 1, column 10:
PL/SQL: Statement ignored
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
Es porque se instalo un parche y no se ejecuto el script para actualizar el diccionario y hay diferencias con el codigo fuentes instalado, para ver esta diferencia hacer:
select * from ctxsys.ctx_version;
VER_DICT VER_CODE
---------- ----------
10.2.0.1.0 10.2.0.3.0
Ejecutar ctxpatch.sql para actualizar Oracle TEXT, de la siguiente forma:
shutdown immediate
startup upgrade
@?/ctx/admin/ctxpatch.sql
shutdown immediate
startup
Experiencias que me hicieron más facíl mi trabajo en SAP - Oracle - Linux Si tenes alguna duda de mis Entradas no dudes en consultarme.
jueves, 10 de septiembre de 2009
Posibles Causas del error ORA-38029 "Object Statistics Are Locked"
Posibles Causas del error ORA-38029 "Object Statistics Are Locked"
1. Se ejecuto el procedimiento de bloqueo como por ejemplo DBMS_STATS.LOCK_[SCHEMA|TABLE]_STATS
2. En Oracle 10gR2 10.2.0.1 se ejecuto un import con rows=n
La soluciones es ver que objetos tiene la estadísticas lokeadas:
select table_name, stattype_locked from user_tab_statistics where stattype_locked is not null;
select num_rows, last_analyzed from user_ind_statistics where stattype_locked is not null;
Con ese resultado ejecutar, según sea el caso:
Si es todo en esquema completo EXECUTE DBMS_STATS.UNLOCK_SCHEMA_STATS ('SCHEMA');
es decir: EXEC DBMS_STATS.UNLOCK_SCHEMA_STATS ('SCOTT');
Si es solo una tabla
EXEC DBMS_STATS.UNLOCK_TABLE_STATS('OWNER','TABLA');
es decir: EXEC DBMS_STATS.UNLOCK_TABLE_STATS('SCOTT','TIGER');
1. Se ejecuto el procedimiento de bloqueo como por ejemplo DBMS_STATS.LOCK_[SCHEMA|TABLE]_STATS
2. En Oracle 10gR2 10.2.0.1 se ejecuto un import con rows=n
La soluciones es ver que objetos tiene la estadísticas lokeadas:
select table_name, stattype_locked from user_tab_statistics where stattype_locked is not null;
select num_rows, last_analyzed from user_ind_statistics where stattype_locked is not null;
Con ese resultado ejecutar, según sea el caso:
Si es todo en esquema completo EXECUTE DBMS_STATS.UNLOCK_SCHEMA_STATS ('SCHEMA');
es decir: EXEC DBMS_STATS.UNLOCK_SCHEMA_STATS ('SCOTT');
Si es solo una tabla
EXEC DBMS_STATS.UNLOCK_TABLE_STATS('OWNER','TABLA');
es decir: EXEC DBMS_STATS.UNLOCK_TABLE_STATS('SCOTT','TIGER');
ORA-29868: cannot issue DDL on a domain index marked as LOADING
Cuando no se puede borrar el indexe porque marcar el error:
ORA-29868: cannot issue DDL on a domain index marked as LOADING
La menera de borrarlo es haciendo usando la opcion FORCE en el drop:
Drop index Nombre_de_indixe force;
Luego se recrea de nuevo.
ORA-29868: cannot issue DDL on a domain index marked as LOADING
La menera de borrarlo es haciendo usando la opcion FORCE en el drop:
Drop index Nombre_de_indixe force;
Luego se recrea de nuevo.