sql >> Databasteknik >  >> RDS >> Oracle

Buffers dbms_output.put() annorlunda än dbms_output.put_line()?

Här är ett exempel som visar beteendet du ser:

SQL> exec dbms_output.put_line('hello')
hello

PL/SQL procedure successfully completed.

SQL> exec dbms_output.put('hello again')

PL/SQL procedure successfully completed.

SQL> exec dbms_output.put(' and again')

PL/SQL procedure successfully completed.

SQL> exec dbms_output.new_line
hello again and again

PL/SQL procedure successfully completed.

dokumentationen säger "SQL*Plus anropar GET_LINES efter att ha utfärdat en SQL-sats eller anonyma PL/SQL-anrop."

Och proceduren GET_LINES säger "Denna procedur hämtar en array av linjer från bufferten."

Med PUT har du inte slutfört din linje ännu. Så det skrivs inte ut.

NEW_LINE-proceduren nämner detta också:"Denna procedur sätter en radslutmarkör. GET_LINE-proceduren och GET_LINES-proceduren returnerar "linjer" som avgränsade av "nylinjer". Varje anrop till PUT_LINE-proceduren eller NEW_LINE-proceduren genererar en linje som returneras av GET_LINE(S)."

Hälsningar,
Rob.




  1. MySQL SKAPA FUNKTION Syntax

  2. Hur RTRIM_ORACLE() fungerar i MariaDB

  3. Sequelize Migration:relation <table> existerar inte

  4. ändra datumformat 'åååå/mm/dd' till 'mm-dd-åååå' i Oracle