sql >> Databasteknik >  >> RDS >> Oracle

Finns det något sätt att spola ut utdata från PL/SQL i Oracle?

Inte riktigt. Så här fungerar DBMS_OUTPUT:Ditt PL/SQL-block körs på databasservern utan interaktion med klienten. Så när du anropar PUT_LINE är det bara att lägga den texten i en buffert i minnet på servern. När ditt PL/SQL-block är klart, returneras kontrollen till klienten (jag antar SQLPlus i det här fallet); vid den tidpunkten hämtar klienten texten ur bufferten genom att anropa GET_LINE och visar den.

Så det enda sättet du kan få utdata att visas i loggfilen oftare är att dela upp ett stort PL/SQL-block i flera mindre block, så att kontrollen återförs till klienten oftare. Detta kanske inte är praktiskt beroende på vad din kod gör.

Andra alternativ är att använda UTL_FILE för att skriva till en textfil, som kan tömmas när du vill, eller använda en autonom transaktionsprocedur för att infoga felsökningssatser i en databastabell och commit efter varje.



  1. Hur man skapar en ADDM-uppgift och kontrollerar dess rapport

  2. postgres kolumn X finns inte

  3. ORACLE och TRIGGERS (infogade, uppdaterade, raderade)

  4. 4 sätt att hitta rader som innehåller versaler i Oracle