sql >> Database >  >> RDS >> Oracle

Log DBMS_OUTPUT.Put_Line-uitvoer in tabel in Oracle met DBMS_OUTPUT.Get_Lines

Dbms_Output.Put_Line is een goede manier om debug PLSQL-code eenvoudig door de vereiste waarden af ​​te drukken om bij te houden waar de dingen fout gaan. Maar als u die afdrukgegevens in een tabel wilt loggen om ze op elk moment te analyseren, kunt u dit doen met de procedure Dbms_Output.Get_Lines.

Het onderstaande voorbeeld wordt gegeven om Dbms_Output.Put_Line-afdrukwaarden in een tabel in Oracle te loggen. Hieronder ziet u de structuur van de tabel die in dit voorbeeld wordt gebruikt met de naam "outputlog" of u kunt uw eigen tabel maken volgens uw vereisten.

CREATE TABLE OUTPUTLOG( CHAR_COL VARCHAR2(1000 BYTE), PROCNAME VARCHAR2(100 BYTE), LOG_DATE DATE);En het volgende is het PLSQL anonieme blokvoorbeeld om de output te loggen:DECLARE n NUMBER:=100; vcol DBMS_OUTPUT.chararr;BEGIN DBMS_OUTPUT.inschakelen (100000); --- doe hier iets DBMS_OUTPUT.put_line ('eerste regel'); --- doe hier iets DBMS_OUTPUT.put_line ('tweede regel'); --- doe hier iets DBMS_OUTPUT.put_line ('derde regel'); --- haal de output in vcol array DBMS_OUTPUT.get_lines (vcol, n); FOR i IN 1 .. n LOOP INSERT INTO outputlog (char_col, procname, log_date) VALUES (vcol (i), 'anoniem', SYSDATE); EINDE LUS; COMMIT;END;Opmerking:ik ken de waarde van 100 tot n variabele toe en het aantal uitvoerlijnen is slechts 3, dus het zal slechts 3 keer herhalen en opnemen omdat het slechts 3 rijen in uitvoer heeft, maar als de uitvoerbuffer rijen heeft meer dan 100 dan zal het slechts 100 rijen loggen, dus pas de waarde van deze variabele dienovereenkomstig aan.
  1. Query om alle pakketten te doorzoeken op tabel en/of kolom

  2. java.math.BigInteger kan niet worden gecast naar java.lang.Integer

  3. Hoe de volledige MySQL-database te verwijderen

  4. Vind het totale aantal resultaten in mySQL-query met offset+limiet