sql >> Databáze >  >> RDS >> Oracle

Ukládá se dbms_output.put() do vyrovnávací paměti jinak než dbms_output.put_line()?

Zde je příklad, který ukazuje chování, které vidíte:

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.

dokumentace říká "SQL*Plus volá GET_LINES po vydání příkazu SQL nebo anonymních volání PL/SQL."

A procedura GET_LINES říká "Tato procedura načte pole řádků z vyrovnávací paměti."

S PUT jste ještě nedokončili svůj řádek. A tak se netiskne.

Procedura NEW_LINE to také zmiňuje:"Tato procedura vloží značku konce řádku. Procedura GET_LINE a procedura GET_LINES vrátí "řádky" oddělené "nové řádky". Každé volání procedury PUT_LINE nebo procedury NEW_LINE vygeneruje řádek který vrací GET_LINE(S)."

S pozdravem
Robe.




  1. TypeORM QueryRunner Vyberte odlišné

  2. Implementace Optimistic Locking v Oracle

  3. Jak nastavit databázovou poštu na serveru SQL Server (SSMS)

  4. Chyba při volání jazyka Java z PL/SQL