Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy dbms_output.put() jest buforowany inaczej niż dbms_output.put_line()?

Oto przykład pokazujący obserwowane zachowanie:

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.

dokumentacja mówi "SQL*Plus wywołuje GET_LINES po wydaniu instrukcji SQL lub anonimowych wywołaniach PL/SQL."

A procedura GET_LINES mówi "Ta procedura pobiera tablicę linii z bufora."

Z PUT nie ukończyłeś jeszcze swojej linii. I dlatego się nie drukuje.

Wspomina o tym również procedura NEW_LINE:„Ta procedura umieszcza znacznik końca linii. Procedury GET_LINE i GET_LINES zwracają „linie” oddzielone „nowymi liniami”. Każde wywołanie procedury PUT_LINE lub procedury NEW_LINE generuje linię który jest zwracany przez GET_LINE(S)."

Pozdrawiam,
Zbój.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podaj dane uwierzytelniające UTL_MAIL.SEND, aby ominąć ORA-29278

  2. Połącz się z Oracle DB z Spring-jdbc z uwierzytelnianiem Oracle Wallet

  3. wstawianie/aktualizacje/usuwanie logów w bazie danych Oracle

  4. POSTMAN zwraca pola dat ze zmienionymi wartościami

  5. PLS-00386:znaleziono niezgodność typów między kursorem FETCH a zmiennymi INTO