sql >> Base de Datos >  >> RDS >> Oracle

Registrar la salida DBMS_OUTPUT.Put_Line en la tabla en Oracle con DBMS_OUTPUT.Get_Lines

Dbms_Output.Put_Line es una buena manera de depure el código PLSQL fácilmente imprimiendo los valores requeridos para rastrear dónde van las cosas mal. Pero si desea registrar esos datos de impresión en una tabla para analizarlos en cualquier momento, puede hacerlo con el procedimiento Dbms_Output.Get_Lines.

El ejemplo se proporciona a continuación para registrar los valores de impresión de Dbms_Output.Put_Line en una tabla en Oracle. A continuación se muestra la estructura de la tabla que se utiliza en este ejemplo llamada "registro de salida" o puede crear la suya propia según sus necesidades.

CREATE TABLE OUTPUTLOG( CHAR_COL VARCHAR2(1000 BYTE), PROCNAME VARCHAR2(100 BYTE), LOG_DATE DATE); Y el siguiente es el ejemplo de bloque anónimo PLSQL para registrar la salida:DECLARE n NUMBER :=100; vcol DBMS_OUTPUT.chararr;COMENZAR DBMS_OUTPUT.habilitar (100000); --- haga algo aquí DBMS_OUTPUT.put_line ('primera línea'); --- haga algo aquí DBMS_OUTPUT.put_line ('segunda línea'); --- haga algo aquí DBMS_OUTPUT.put_line ('tercera línea'); --- obtenga la salida en la matriz vcol DBMS_OUTPUT.get_lines (vcol, n); FOR i IN 1 .. n LOOP INSERT INTO outputlog (char_col, procname, log_date) VALUES (vcol (i), 'anónimo', SYSDATE); FIN DEL BUCLE; COMMIT;END;Tenga en cuenta que asigno el valor de 100 a la variable n y el número de líneas de salida es solo 3, por lo que se repetirá y grabará solo 3 veces porque solo tiene 3 filas en la salida, pero si el búfer de salida tiene filas más de 100 de lo que registrará solo 100 filas, así que ajuste el valor de esta variable en consecuencia.