【DBMS】Oracle DBMS_OUTOUT程式介紹
該包通常用於除錯,或用於向 SQL*DBA 或 SQL*Plus 顯示訊息和報告
此包中的PUT 過程和PUT_LINE 過程能夠將資訊放置在可由另一個觸發器、過程或包讀取的緩衝區中。
在單獨的 PL/SQL 過程或匿名塊中, 您可以透過呼叫GET_LINE 過程和GET_LINES 過程來顯示緩衝的資訊。
如果包被禁用,所有對子程式的呼叫都將被忽略。透過這種方式,您可以設計您的應用程式, 以便僅當客戶端能夠處理資訊時子程式才可用。
DBMS_OUTPUT 規則和限制
-
最大行大小為 32767 位元組。
-
預設緩衝區大小為 20000 位元組。最小大小為 2000 位元組,最大為無限制。
DBMS_OUTPUT 子程式介紹
描述 |
描述 |
---|---|
DISABLE Procedure | 禁用訊息輸出 |
ENABLE Procedure |
啟用訊息輸出 |
GET_LINE Procedure |
從緩衝區中檢索一行 |
GET_LINES Procedure |
從緩衝區檢索行陣列 |
NEW_LINE Procedure |
終端使用建立的行,一行的結束 |
PUT Procedure |
在緩衝區中放置部分行 |
PUT_LINE Procedure |
將行放入緩衝區 |
下面主要介紹 三個過程。
PUT PUT_LINE NEW_LINE
示例:
--put和new_line SQL> set serveroutput on; --顯示結果 begin dbms_output.put('a'); --寫入buffer但不輸出 dbms_output.put('b'); --寫入buffer但不輸出 dbms_output.new_line; --回車(換行),輸出 dbms_output.put_line('hello world!'); --輸出並換行 dbms_output.put('d'); --寫入buffer但不輸出 end; / SQL> 2 3 4 5 6 7 8 ab hello world! PL/SQL procedure successfully completed. SQL>
注:使用get_line時不能用put_line輸出,因為put_line之後會將buffer清空。(當然在serveroutput off的情況下put_line是不影響buffer的)。
示例:
--get_line declare msg varchar2(120); cursor t_cur is select * from t order by a; v_line varchar2(100); v_status integer := 0; begin dbms_output.enable; for i in t_cur loop msg := i.a || ',' || i.b || ',' || i.c; dbms_output.put_line(msg); --put end loop; dbms_output.get_line(v_line, v_status); --get while v_status = 0 loop insert into tt values(v_status, v_line); dbms_output.get_line(v_line, v_status); end loop; end; / --get_lines set serveroutput on; declare v_data dbms_output.chararr; v_numlines number; begin --enable the buffer first. dbms_output.enable(1000000); dbms_output.put_line('line one'); dbms_output.put_line('line two'); dbms_output.put_line('line three'); v_numlines := 3; dbms_output.get_lines(v_data, v_numlines); --array, index for v_counter in 1..v_numlines loop dbms_output.put_line(v_data(v_counter)); end loop; end; /
參考:
-
https://www.cnblogs.com/forestwolf/p/4885160.html
-
官方文件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2842277/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle統計資訊包--dbms_stats介紹Oracle
- Oracle CRS/GI 程式介紹Oracle
- oracle GlodenGate 程式介紹Oracle
- oracle 11g DBMS_SQLTUNE 包的使用方法介紹OracleSQL
- Oracle RAC後臺程式介紹Oracle
- Oracle VKRM 後臺程式介紹Oracle
- oracle RAC 底層程式介紹Oracle
- LGnn 程式介紹(oracle 19c)GNNOracle
- ORACLE OWI介紹Oracle
- ORACLE ORION介紹Oracle
- oracle VPD介紹Oracle
- Oracle recyclebin介紹Oracle
- ORACLE鎖介紹Oracle
- Oracle ACE 介紹Oracle
- oracle job 介紹Oracle
- Oracle Spatial 介紹Oracle
- Oracle CRS/GI 程式介紹 來自oracle官方部落格Oracle
- oracle五大程式和server process介紹OracleServer
- Oracle DRM原理介紹Oracle
- Oracle ADR介紹Oracle
- Oracle BBED 工具介紹Oracle
- Oracle RAC 概念介紹Oracle
- 【轉】Oracle ASM介紹OracleASM
- ORACLE函式介紹Oracle函式
- ORACLE TSPITR 介紹Oracle
- Oracle dblink介紹Oracle
- Oracle Data Guard 介紹Oracle
- Oracle biee 中文介紹Oracle
- Oracle Data Integrator 介紹...Oracle
- Oracle DBV 工具 介紹Oracle
- Oracle 常用HINT介紹Oracle
- 介紹oracle外部表Oracle
- Oracle x$table介紹Oracle
- ORACLE 檢視介紹Oracle
- 【Oracle】Opatch 工具介紹Oracle
- 【Oracle】Oracle logminer功能介紹Oracle
- 第1章 Oracle資料庫簡介-DBMSOracle資料庫
- 「Oracle」Oracle高階查詢介紹Oracle