Oracle - Concatenar ItemS en la declaración de un cursor

 
Vista:

Concatenar ItemS en la declaración de un cursor

Publicado por ELIA (43 intervenciones) el 28/11/2003 14:35:37
Hola a todos de nuevo, ya os hice una consulta muy parecida, en ese caso debía concatenar varios items para formar una claúsula
WHERE de una Insert tomando los datos de un bloque y de una Lista desplegable, del bloque cojo una cantidad, y de la
lista cojo el signo '=' o '>' o '<', según lo q haya elegido el usuario.El compañero Byron me indicò la forma de hacerlo
utilizando la Función FORMS_DDL( ) y me funcionó.Pero ahora necesito hacer lo mismo ,a la hora de declarar un cursor:

DECLARE
CURSOR LARGO_CURSOR IS SELECT LARGO FROM INVENTARIO WHERE ESPESOR =:LISTESPE GROUP BY LARGO;
BEGIN
CLEAR_LIST('LISTLARGO');
FOR RINVENTARIO IN LARGO_cursor LOOP
ADD_LIST_ELEMENT ('LISTLARGO',LARGO_CURSOR%ROWCOUNT,RINVENTARIO.LARGO,RINVENTARIO.LARGO);
END LOOP;
END;

En este caso necesito poner el Signo = de 'Espesor = :listespe' tomandolo de una lista desplegable
'Espesor ||:listope|| :listespe', pero claro aquí tampoco puede concatenar , y no sé
como hacerlo. Gracias por vuestra atención. Elia
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:Concatenar ItemS en la declaración de un cursor

Publicado por Byron (300 intervenciones) el 28/11/2003 15:14:35
Lo que necesitas es un cursor dinamico lo puedes hacer mediante el paquete DBMS_SQL. Debido a que el codigo es un poco pesado no te lo muestro, investiga un poco acerca de este paquete.

Saludos DTB
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:Concatenar ItemS en la declaración de un cursor

Publicado por ELIA (43 intervenciones) el 02/12/2003 08:22:40
Muchas gracias Byron, voy a intentarlo. Saludos, Elia.
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:Concatenar ItemS en la declaración de un cursor

Publicado por ELIA (43 intervenciones) el 02/12/2003 15:08:49
Hola de nuevo, he estado investigando el paquete DBMS_SQL, como me dijo Byron, pero tengo un montón de dudas, por lo q
he visto,creo q tengo que crear un procedimiento donde declaro el cursor, pero me he atascado, lo estoy haciendo todo en sql+ =>

CREATE OR REPLACE PROCEDURE Espesores
(TAB_NAME IN VARCHAR2, espesor IN number, Opespe in varchar2,
dbms_return out integer)
IS
LARGO_CURSOR integer;
BEGIN
LARGO_Cursor := dbms_sql.open_cursor;
dbms_sql.parse(LARGO_cursor,'SELECT largo FROM '||TAB_NAME|| ' where espesor' ||opespe||espesor|| ' GROUP BY LARGO ORDER BY LARGO ASC',DBMS_SQL.NATIVE);
dbms_return :=dbms_sql.execute (largo_cursor);
dbms_sql.close_cursor(LARGO_CURSOR);
END; No sé si es esto lo q tengo q hacer, por lo menos no me da errores de complilación, pero no lo puedo ejecutar.
1º no sé como recuperar los registros seleccionados en el cursor, he intentado 'ejecutar' el procedimiento
sql> execute espesores('sugerencias',18,'=', REGISTRO);
pero no sé como debo definir el registro de salida (OUT registro) .Lo defino como variable pero no sé q tipo ponerle, en realidad no sé trata del contenido del cursor? como lo trato?
2º Cuando consiga ejecutarlo, como incorporo este procedimiento a forms, ¿en unidades de programa? y hago referencia a ello en el trigger
No sé si todo lo q pido es muy complicado explicarlo, o si me entendeís, en cualquier caso entenderé si no me lo podeia aclarar,
de todas forma gracias por vuestra atención.Elia
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:Concatenar ItemS en la declaración de un cursor

Publicado por Byron (300 intervenciones) el 02/12/2003 16:39:13
Yo lo hago en program unit de la forma, porque tengo que hacer referencia a items.

Debido a que el codigo es grande y LWP no me permite mucho texto, te envio por mail un ejemplo.

Saludos DTB
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