viernes, 5 de junio de 2009

ORA-20000: ORA-20000: Content of the tablespace specified is not permanent or tablespace name is invalid

ORA-20000: ORA-20000: Content of the tablespace specified is not permanent or tablespace name is invalid

en mi caso esto me paso porque habia borrado un tablespace y cuando se ejecutaba el asesor me daba ese error

Solucion!!!

SQL> select distinct tablespace_name from DBA_AUTO_SEGADV_CTL;

TABLESPACE_NAME
------------------------------
SYSAUX
TBL_VIEJO
USERS_REORG0

SQL> delete from DBA_AUTO_SEGADV_CTL where tablespace_name='TBL_VIEJO';

1 fila suprimida.

SQL> commit;

Confirmaci�n terminada.
free counters

martes, 2 de junio de 2009

INDEXAR COLUMNAS EN ORACLE CUANDO USAMOS LIKE

Bueno he tenido el problema de ajustar consultas cuando usan el operador like con la mascara '%%' , esto sin duda hace un full scan a la tabla en cuestion.

Afortunadamente oracle nos soluciona este problemas con unos tipos especiales de indices usando oracle text.

Estos tipos especiales de indices son:

# CONTEXT Indexes : se usa para buscar en documentos pdf , html etc.
# CTXCAT Indexes : se usa para buscar texto corto nomas de 30 caracteres.
# CTXRULE Indexes :
para construir aplicaciones de clasificación de documento

primero vamos a crear el indice sobre la columa col1

CREATE INDEX myindice ON tabla(col1) INDEXTYPE IS CTXSYS.CONTEXT;

y en vez de hacer la query

select col1 from tabla where col1 like '%AA%'

hacemos esto

SELECT col1
FROM tabla
WHERE CONTAINS(col1, 'AA', 1) > 0

y usara el indice creado anteriormente.


free counters