Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2003
mercedesrc mercedesrc is offline
Registrado
 
Registrado: sep 2003
Posts: 2
Poder: 0
mercedesrc Va por buen camino
Unhappy Indices que dependan de funciones almacenadas

Hola, quiero crear un indice que dependa de una función almacenada, es decir, del valor que devuelva y no que dependa de una campo de la tabla.

Podría alguien comentarme cual es la sentencia sql necesaria para crear este tipo de indicies y como sería el funcionamiento del índice.
Muy agradecida.
Mer.
Responder Con Cita
  #2  
Antiguo 30-09-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
He probado sobre oracle 8 y esta característica no está disponible. Encuentro el error

ORA-00439: feature not enabled: Function-based indexes

ahora no tengo a la mano oracle 9i, pues mi servidor de pruebas esta abajo...

La sentencia debiera ser:

Código:
  create index NombreIndice on NombreTabla(Funcion(argumentos)) y demas opciones de almacenamiento;
Si trabajas sobre oracle 9, probalo y si te funciona, por favor retroalimentá este hilo.

Hasta luego

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 30-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Tienes que tener en cuenta que esto solo funciona a partir de Oracle 8i
Código:
CREATE INDEX NDX_UPPER_APELLIDO ON EMPLEADOS (UPPER(APELLIDO));
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 01-10-2003
mercedesrc mercedesrc is offline
Registrado
 
Registrado: sep 2003
Posts: 2
Poder: 0
mercedesrc Va por buen camino
Unhappy

Hola, muchas gracias por vuestras respuestas...
comentarles que he probado lo que me indican...
y buscando en internet he visto que la función
almacenada de oracle que quiera poder poner en la declaración del índice debe definirse como DETERMINISTIC
por ejemplo:
me creo la función..
--------------------------------------
CREATE FUNCTION FUNC_NOMBRE
( p1 in varchar)
RETURN varchar
DETERMINISTIC
IS
BEGIN
RETURN upper(p1) ;
END;

y creo el indice...
CREATE INDEX INDX_TABLA_A ON TABLA_A (FUNC_NOMBRE(NOMBRE) )
/

Y Siempre me da un error de privilegios insuficientes.
El administrador de la BD me ha otorgado todos los permisos pero no funciona.... sigue igual
Estoy trabajando con una BD Oracle 8.1.5.0.0

No he podido probarlo en 9i... saben si se puede en 9i???
y que significa definir la función como DETERMINISTC???
GRacias...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:24:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi