Cursores!!

scriptbug
30 de Marzo del 2004
Hola!!
Tengo problema con SQL*plus y los cursores
cuando intento ejecutar un bloque el cual contiene un cursor no ejecuta.
Ejemplo
SQL> DECLARE
2 --Declaramos un Cursor
3 CURSOR DEPT IS
4 SELECT *
5 FROM DEPARTAMENTO
6 WHERE NUMEROD IN (1,2,3,4,5,6,7,8,9,10);
7 BEGIN
8
9 FOR regDEPT IN DEPT LOOP
10 DBMS_OUTPUT.PUT_LINE(regDEPT.NOMBRED|| ' '||regDEPT.NUMEROD||' '||regDEPT.NSS_JEFE);
11 END LOOP;
12 END;
13 /
14
15 .... doy intro y no ejecuta!!!
Sabe alguien que es lo que sucede
estoy como usuario SCOTT
muchas gracias!!!

set
30 de Marzo del 2004
ya te fijaste que existan departamentos con ese numerod, te da algun error, prueba despues de la ejecucion con show error, da más información

mamencc
30 de Marzo del 2004
para ver los mensajes en sql plus con DBMS_OUTPUT.PUT_LINE(''); hay que poner justo antes de ejecutar el bloque SET SERVEROUTPUT ON
Ej:
SQL> SET SERVEROUTPUT ON
SQL>DECLARE
.........

script
30 de Marzo del 2004
El problema que tengo es que cuando intento ejecutar esa consalta no lo consigo.
Cuando bloque se ejecuta bien o mal siempre devuelve el prompt
por ejemplo cuando se ejecuta bien:

Procedimiento PL/SQL terminado correctamente.
SQL>
pero a mi cuando intento ejecutar ese bloque no me aparece el prompt cuando termino el bloque con
END
/
15
16
17...
Gracias por tu ayuda!!
Salu2

scriptbug
30 de Marzo del 2004
Problema resuelto!!
Era la mayor txorrada que existe.
Cuando ejecutamos un bloque PL/SQL al final del bloque ponemos:
...
END
/ (sin dejar espacio)
el problema que tenia es que la barra para indicarle al SQL*PLUS el final del bloque tenia un espacio de esta manera no ejecutaba nada.
Todo este problema me ha surgido por tener todos los bloques guardados en un archivo de texto.
Espero que si le pasa a alguien más no se vuelva loco y lo resuelva rápidamente.
perdonad las molestias!!!
Salu2