Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Selects dinamicas

Estas en el tema de Selects dinamicas en el foro de Oracle en Foros del Web. Buenos días. Os escribo porqeu estoy teniendo un problemilla con una SELECT DINAMICA en un procedimiento de BBDD. Os pongo en antecedentes, tengo: - tabla ...
  #1 (permalink)  
Antiguo 29/09/2010, 05:57
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Selects dinamicas

Buenos días.

Os escribo porqeu estoy teniendo un problemilla con una SELECT DINAMICA en un procedimiento de BBDD. Os pongo en antecedentes, tengo:

- tabla WTABLA_PRUEBA (tabla con 20 campos, entre ellos columna SALUDO)
- Procedimiento CARGAR_DATOS_TABLA (carga los datos de la tabla dinamicamente)
Resumiendolo sería algo asi:

PROCEDURE CARGAR_DATOS_TABLA ()
IS
v_select varchar2(1000);
TYPE T_TABLA IS TABLE OF WTABLA_PRUEBA%ROWTYPE INDEX BY BINARY_INTEGER;
DATOS_T_TABLA T_TABLA;

BEGIN

v_select:=' Select ''HOLA'' saludo from dual';
EXECUTE IMMEDIATE V_select BULK COLLECT
INTO DATOS_T_TABLA;}


Os lo he resumido un poco. Basicamente la idea es cargar en una variable tabla sólo la columna SALUDO con los datos de una select dinámica.

Al hacer esto me da un error: ORA-01007: la variable no está en la lista de selección.
Me huelo qeu es debido a que para hacer lo qeu hago, tengo qeu cargar TODOS los campos de la tabla no solo el campo SALUDO.

Mi intencion sigue siendo la misma, cargar solo el campo SALUDO.

¿Alguna idea??

Muchas gacias y espero haberme explicado.
  #2 (permalink)  
Antiguo 29/09/2010, 08:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Selects dinamicas

Hola javi_cassi

Mira este tema donde se toca un poco el tema de SQL dinamico.

De igual forma, me parece rara la consulta que tratas de hacer.

Select ''HOLA'' saludo from dual

Puede que solo lo pongas para hacerte explicar.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 30/09/2010, 10:25
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Selects dinamicas

Hola huesos!!!!!

Efectivamente la consulta que ponía era explicativa. En realidad tengo una consulta de 20 campos con JOINS, ... pero me parecía qeu poner los datos reales iba a complicar la cosa.


El post al que me mandas lo tengo claro y así es como lo manejo. Mi problema viene al volcar los datos de la select en parte de los datos de mi variable tabla.

A ver si me explico.

Creo una variable llamada DATOS_CIUDAD que es de tipo tabla que tiene los campos:
CIUDAD, PAIS, PROVINCIA, COD_POSTAL (por ejemplo)

A continuacion tengo una select dinamica, v_select, en la cual solo obtengo los datos de CIUDAD Y PAIS.

Mi intencion es hacer esto
EXECUTE IMMEDIATE V_select BULK COLLECT
INTO DATOS_CIUDAD

Qué pasa, que mi select solo maneja dos columnas mientras DATOS_CIUDAD maneja 4 (y creo qeu por eso me da el error)

Mi intencion seria hacerlo asi:

EXECUTE IMMEDIATE V_select BULK COLLECT
INTO DATOS_CIUDAD.ciudad, DATOS_CIUDAD.pais.

Pero por supuesto esto no existe y nno se puede hacer. Y me preguntaba que debe haber algo que precisamente rellene los datos de una matriz que tú quieras. Pero todavía no lo he encontrado. ¿me explico?
Antes nunca lo había pensado, pero ahora que lo tengo delante me parece algo qeu debería ser sencillo y que creo qeu ORACLE debería de poder hacerlo con una sentencia facil.

En fin, a ver si se os ocurre algo.

Muchas gracias por la ayuda y un saludo.

Etiquetas: dinamicas, selects
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.