Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/07/2012, 00:26
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Consulta de registro en BD

Joder, no pides tu nada.

Si te entendido bien ( hoy estoy algo espeso ), lo que quieres es crear un script al que por ejemplo le pases pepe como parámetro y te saque todos los campos de todas las tablas y el nombre de las tablas en los que se encuentre la cadena pepe, por ejemplo : peperoni, pepe, repepero………………………

Lo primero que se me ocurre es que te montes un cursor sobre ALL/DBA_TAB_COLUMNS y saques el nombre de la tabla y del campo donde el DATA_TYPE = VARCHAR2 ( Asumo que le pasas un string ), sobre eso te montas un sql dinamico y haces algo parecido a
SELECT COUNT(*)
FROM CURSOR.NOMBRE_DE_TABLA
WHERE CURSOR.NOMBRE DE CAMPO LIKE ‘%STRING QUE LE HAS PASADO COMO PARAMETRO%’

Y lo metes dentro de una variable, ahora accedes a esa variable y si tiene contenido sabes que ha habido una ocurrencia y metes CURSOR.NOMBRE_DE_TABLA y el CURSOR.NOMBRE DE CAMPO en una tabla física o en una tabla pl.

Asume que ese proceso va a ser muy largo y costoso ya que tiene que consultar en todos los campos varchar2 de todas las tablas y se las tiene que recorrer enteras N veces ( aquí no te van a funcionar los índices ). No se cuantas tablas tienes, pero para que te hagas una idea, en nuestra BBDD de Producción para 1948 tablas, tenemos 12512 campos que son varchar2…….. para nosotros sería imposible hacerlo, con el volumen de datos que tenemos nos tardaría meses……………….