Oracle - ORA-01422 in CURSOR

 
Vista:

ORA-01422 in CURSOR

Publicado por Pedro (28 intervenciones) el 07/11/2006 16:37:40
Antes que nada....Gracias por ayudarme..
tengo este proc y me da el error de abajo

PROCEDURE Impuestos_Consul
(OUT_Impu_CONSUL_CURSOR IN OUT TIPO_Impu_CONSUL_ROW
)AS
BEGIN

OPEN OUT_Impu_CONSUL_CURSOR FOR
SELECT * FROM IMPU_AUXCOMER
ORDER BY MARCA,CODAPLIC,TIPOREG;

EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20500, SQLERRM);
END Impuestos_Consul;

ORA-20500: ORA-01422 exact fech returns more than requested number of rows

No deberìa cargar toda la tabla en el cursor sin dar problemas ???

saludos a todos y gracias.
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:ORA-01422 in CURSOR

Publicado por Ricardo (84 intervenciones) el 08/11/2006 14:28:36
Hola Pedro:

Me parece que el problema puede estar en que el parámetro de salida que estás usando es un row y no una 'tabla' o un ref_cursor...

Aqui te paso un link que me pareció interesante donde habla, precisamente de todos los tipos de cursores, incluidos los ref_cursor...

http://www.lcc.uma.es/~enciso/Docencia/Laboratorio/docs/Cursores.pdf

Saludos
Ricardo.
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:ORA-01422 in CURSOR

Publicado por Pedro (28 intervenciones) el 08/11/2006 18:14:29
Hola Ricardo...
gracias por contestar
lo tengo definido de esta manera

Spec del Package

CURSOR Impu_CONSUL_CURSOR IS
SELECT * FROM IMPU_AUXCOMER;
TYPE TIPO_Impu_CONSUL_ROW IS REF CURSOR RETURN Impu_CONSUL_CURSOR%ROWTYPE;

*****************************************************************
Body del Package (es lo mismo que en el otro mensaje)

PROCEDURE Impuestos_Consul
(OUT_Impu_CONSUL_CURSOR IN OUT TIPO_Impu_CONSUL_ROW
)AS
BEGIN

OPEN OUT_Impu_CONSUL_CURSOR FOR
SELECT * FROM IMPU_AUXCOMER
ORDER BY MARCA,CODAPLIC,TIPOREG;

EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20500, SQLERRM);
END Impuestos_Consul;

******************************************************************************

lo extraño que me reportan es que no siempre da el error, es decir, hay corridas que andan bien.
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