sql >> Database teknologi >  >> RDS >> Oracle

Er der nogen måde at skylle output fra PL/SQL i Oracle?

Ikke rigtig. Måden DBMS_OUTPUT fungerer på er denne:Din PL/SQL-blok udføres på databaseserveren uden interaktion med klienten. Så når du kalder PUT_LINE, er det bare at lægge den tekst i en buffer i hukommelsen på serveren. Når din PL/SQL-blok er fuldført, returneres kontrollen til klienten (jeg antager SQLPlus i dette tilfælde); på det tidspunkt henter klienten teksten ud af bufferen ved at kalde GET_LINE og viser den.

Så den eneste måde, du kan få outputtet til at vises i logfilen oftere, er at dele en stor PL/SQL-blok op i flere mindre blokke, så kontrollen returneres til klienten oftere. Dette er muligvis ikke praktisk, afhængigt af hvad din kode gør.

Andre alternativer er at bruge UTL_FILE til at skrive til en tekstfil, som kan tømmes, når du vil, eller bruge en autonom transaktionsprocedure til at indsætte debug-sætninger i en databasetabel og commit efter hver enkelt.



  1. SQL CREATE TABLE Syntaks – Listet efter DBMS

  2. MS Access Corruption Del 2:Bedste praksis for forebyggelse og genopretning

  3. SQL Server-strengsammenkædning med Null

  4. Hvad sker der med en ikke-forpligtet transaktion, når forbindelsen lukkes?