Solución:
Para comprender el uso de “SET SERVEROUTPUT ON”, tomaré un ejemplo
DECLARE
a number(10) :=10;
BEGIN
dbms_output.put_line(a) ;
dbms_output.put_line('Hello World ! ') ;
END ;
Con un resultado: procedimiento PL / SQl completado con éxito, es decir, sin el resultado esperado
Y la principal razón detrás es que, lo que sea que pasemos por dentro dbms_output.put_line (‘ARGUMENTO’ / VALORES) es decir, ARGUMENTO / VALORES, se almacena internamente dentro de un búfer en el área de memoria SGA (Área Global Compartida) hasta 2000 bytes.
* NOTA: *** Sin embargo, se debe tener en cuenta que este búfer solo se crea cuando usamos ** dbms_output paquete. ¡¡Y necesitamos configurar la variable de entorno solo una vez para una sesión !!
Y para obtenerlo de ese búfer, necesitamos establecer la variable de entorno para la sesión. A los principiantes les causa mucha confusión que estemos configurando la salida del servidor (debido a su nomenclatura), pero desafortunadamente no es nada de eso. Utilizando ACTIVAR LA SALIDA DEL SERVIDOR le están diciendo al motor PL / SQL que
* Oye, imprime el ARGUMENTO / VALORES que pasaré dentro de dbms_output.put_line
ya su vez, el motor de tiempo de ejecución PL / SQl imprime el argumento en la consola principal.
Creo que les tengo claro a todos. Te deseo lo mejor . Para saber más sobre esto con el estructura arquitectónica de Motor de servidor Oracle puedes ver mi respuesta en Quora http://qr.ae/RojAn8
Y para responder a su pregunta “Se debe usar SET SERVER OUTPUT al comienzo de la sesión”.
“SET serveroutput ON” es un comando SQL * Plus y no es PL / SQL válido.
Primero agregue el siguiente código en su sp:
BEGIN
dbms_output.enable();
dbms_output.put_line ('TEST LINE');
END;
Compile su código en su desarrollador de Oracle SQL. Así que vaya a Vista de menú -> salida dbms. Haga clic en Icon Green Plus y seleccione su esquema. Ejecute su sp ahora.