sql >> Databasteknik >  >> RDS >> Oracle

Logga DBMS_OUTPUT.Put_Line-utgång i tabell i Oracle med DBMS_OUTPUT.Get_Lines

Dbms_Output.Put_Line är ett bra sätt att felsöka PLSQL-kod enkelt genom att skriva ut de nödvändiga värdena för att spåra var saker och ting går fel. Men om du vill logga in den utskriftsdatan i en tabell för att analysera den när som helst, kan du göra detta med proceduren Dbms_Output.Get_Lines.

Exemplet ges nedan för att logga Dbms_Output.Put_Line-utskriftsvärden i en tabell i Oracle. Nedan är strukturen för tabellen som används i det här exemplet med namnet "outputlog" eller så kan du skapa din egen enligt dina önskemål.

CREATE TABLE OUTPUTLOG( CHAR_COL VARCHAR2(1000 BYTE), PROCNAME VARCHAR2(100 BYTE), LOG_DATE DATE);Och följande är PLSQL anonyma blockexempel för att logga utdata:DECLARE n NUMBER :=100; vcol DBMS_OUTPUT.chararr;BEGIN DBMS_OUTPUT.enable (100000); --- gör något här DBMS_OUTPUT.put_line ('första raden'); --- gör något här DBMS_OUTPUT.put_line ('andra raden'); --- gör något här DBMS_OUTPUT.put_line ('tredje raden'); --- hämta utdata till vcol-matrisen DBMS_OUTPUT.get_lines (vcol, n); FOR i IN 1 .. n LOOP INSERT INTO outputlog (char_col, procname, log_date) VÄRDEN (vcol (i), 'anonym', SYSDATE); END LOOP; COMMIT;END; Notera att jag bedömer värdet av 100 till n variabel och antalet utdatalinjer är bara 3 så det kommer att loopa och spela in bara 3 gånger eftersom det bara har 3 rader i utdata, men om utbufferten har rader mer än 100 än det kommer bara att logga 100 rader, så justera detta variabelvärde därefter.
  1. Få flera värden i SQL Server Cursor

  2. Få uppdaterad rad

  3. Komplett process för att kopiera tabell från en databas till en annan (export-import) i SQL Server

  4. SQLcl-formateringsalternativ (Oracle)