Recuperación incorrecta con un cursor implícito
Hola foreros,
Tengo un procediemiento un poco rebelde, que hace lo siguiente. Inserto un valor numérico en una tabla hago un commit, y posteriormente quiero recuperarlo con un cursor implícito (SELECT...INTO), el programa pasa de mi y se va a la sección de excepciones con un NO_DATA_FOUND. ¿Alguien me puede decir que hago mal, o que suposición estoy haciendo que es incorrecta?.
Muchas gracias.
Un saludo.
Tengo un procediemiento un poco rebelde, que hace lo siguiente. Inserto un valor numérico en una tabla hago un commit, y posteriormente quiero recuperarlo con un cursor implícito (SELECT...INTO), el programa pasa de mi y se va a la sección de excepciones con un NO_DATA_FOUND. ¿Alguien me puede decir que hago mal, o que suposición estoy haciendo que es incorrecta?.
Muchas gracias.
Un saludo.
Debo suponer que es algo parecido a esto:
PROCEDURE EL_MIO IS
VAR_CAMPO NUMBER;
BEGIN
INSERT INTO TABLA
(CAMPO1 )
VALUES
(65536);
COMMIT;
SELECT CAMPO1
INTO VAR_CAMPO
FROM TABLA;
END;
Esto es correcto, como mucho te puede dar un TOO_MANY_ROWS, pero NUNCA un NO_DATA_FOUND
Ponme el código que utilizas
PROCEDURE EL_MIO IS
VAR_CAMPO NUMBER;
BEGIN
INSERT INTO TABLA
(CAMPO1 )
VALUES
(65536);
COMMIT;
SELECT CAMPO1
INTO VAR_CAMPO
FROM TABLA;
END;
Esto es correcto, como mucho te puede dar un TOO_MANY_ROWS, pero NUNCA un NO_DATA_FOUND
Ponme el código que utilizas
Hola Carlos,
Muchas gracias por las molestias, pero descubrí el otro día cual era el problema. La recuperación sobre el campo NUMBER era correcta, el problema era una de las cláusulas que había en el where del cursor implícito. Establ intentando recuperar un valor numérico con un WHERE NAME='AF_OSCAR', siendo el campo NAME un char de 12 caracteres. Como 'AF_OSCAR' tiene 8 caracteres, el resto los rellenaba con blancos, y no recuperaba nada. (Es el problema de trabajar con algo que no has hecho tu mismo).
Muchas gracias de nuevo Carlos. Un saludo.
Muchas gracias por las molestias, pero descubrí el otro día cual era el problema. La recuperación sobre el campo NUMBER era correcta, el problema era una de las cláusulas que había en el where del cursor implícito. Establ intentando recuperar un valor numérico con un WHERE NAME='AF_OSCAR', siendo el campo NAME un char de 12 caracteres. Como 'AF_OSCAR' tiene 8 caracteres, el resto los rellenaba con blancos, y no recuperaba nada. (Es el problema de trabajar con algo que no has hecho tu mismo).
Muchas gracias de nuevo Carlos. Un saludo.
