Oracle - Ing

   
Vista:

Ing

Publicado por Melcman (6 intervenciones) el 29/10/2007 18:17:28
Saludos tengo un problema, quisiera poder armar un query con variable flotantes, pero me marca error laguina sabe como hacer la mezcla

MYQUERY VARCHAR2(50);

MYQUERY := 'ID = 0 AND ID=1 AND ID=2 AND ID = 3' ;

DECLARE CURSOR MYS IS

select SPRIDEN_PIDM from SPRIDEN where :MYQUERYS;

PERO ME MARCA ERROR
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ing

Publicado por hector (126 intervenciones) el 30/10/2007 01:11:37
En que lugar vas a usar tu query? en plus? en forms? en reports?

Dependiendo de ello podria darte algunas ideas, sin embargo te recomiendo que revises la parte de execute_immediate de la base de datos que puede ser la solucion que estas buscando.

Atentamente,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ing

Publicado por Edgar (6 intervenciones) el 30/10/2007 14:36:07
Saludos, gracias hector es en forms.

la vesion es 10.1.2.2.0

intente un ejemplo que no tiene mucho que ver con lo que uiero hacer ya q:

CREATE OR REPLACE PROCEDURE PROCESA ( PTABLA VARCHAR2) IS
TYPE tipo_cursor IS REF CURSOR;
v_cursor tipo_cursor;
v_query VARCHAR2(15000);
vid number;
vname varchar2(40);
tabla varchar2(40);
BEGIN
v_query := 'SELECT EMPID, ENAME FROM ' || PTABLA ;
OPEN v_cursor FOR v_query;
LOOP
FETCH v_cursor INTO vid, vname;
EXIT WHEN v_cursor%NOTFOUND;
-- PROCESAR INFORMACION ...
END LOOP;
END;
/

EXEC PROCESA('EMP1')

EXEC PROCESA('EMP2')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ing

Publicado por Edgar (6 intervenciones) el 30/10/2007 14:37:42
Saludos, gracias hector es en forms.

la vesion es 10.1.2.2.0

intente un ejemplo que no tiene mucho que ver con lo que quiero hacer ya que solo me interesa mezclar el query con variables algo parecido a lo que hacen aqui con la PTABLA, pero al ejecutarlo me marca error, me dice ue forms no lo soporta. :

CREATE OR REPLACE PROCEDURE PROCESA ( PTABLA VARCHAR2) IS
TYPE tipo_cursor IS REF CURSOR;
v_cursor tipo_cursor;
v_query VARCHAR2(15000);
vid number;
vname varchar2(40);
tabla varchar2(40);
BEGIN
v_query := 'SELECT EMPID, ENAME FROM ' || PTABLA ;
OPEN v_cursor FOR v_query;
LOOP
FETCH v_cursor INTO vid, vname;
EXIT WHEN v_cursor%NOTFOUND;
-- PROCESAR INFORMACION ...
END LOOP;
END;
/

EXEC PROCESA('EMP1')

EXEC PROCESA('EMP2')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Where Dinámico en Forms.

Publicado por hector (126 intervenciones) el 31/10/2007 03:03:55
Una pregunta mas Edgar:
¿El where que estas creando es para un bloque de datos, o es en un procedimiento?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Where Dinámico en Forms.

Publicado por Ed (6 intervenciones) el 31/10/2007 15:57:57
es un procedimiento, que va a llenar un bloque en forma de grid.

problematica completa

1.- tengo un bloque llamado "lista", este bloque esta en blanco, yo comienzo a meter numeros telefonicos en forma de lista , en la linea 1 columna 1 pongo el numero telefonico a buscar (llamese tel1 "88888888"), luego pongo el la linea 2 columna 1 el siguiente numero (llamese tel2 "88888882") y asi consecutiamente hasta N numeros.

2. tengo un bloque llamado "resultados", en este bloque tengo que vaciar los nombres de los numeros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Where Dinámico en Forms.

Publicado por Ed (6 intervenciones) el 31/10/2007 16:03:20
es un procedimiento, que va a llenar un bloque en forma de grid.

problematica completa

1.- tengo un bloque llamado "lista", este bloque esta en blanco, yo comienzo a meter numeros telefonicos en forma de lista , en la linea 1 columna 1 pongo el numero telefonico a buscar (llamese tel1 "88888888"), luego pongo el la linea 2 columna 1 el siguiente numero (llamese tel2 "88888882") y asi consecutiamente hasta N numeros.

2. tengo un bloque llamado "resultados", en este bloque tengo que vaciar los nombres de los numeros que estan en el bloque "lista" esto haciendo un query a la base de datos ejem

select nombre where tel = "bloque lista, telefono en linea 1 columna1"

mi duda? es como seguir por el tel2 en linea2 columna2 y asi consecutivamente

y luego vaciar los nombres en el bloque de resultados.

gracias hector por tu ayuda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar