【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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LGnn 程式介紹(oracle 19c)GNNOracle
- 第1章 Oracle資料庫簡介-DBMSOracle資料庫
- 【Oracle】Oracle logminer功能介紹Oracle
- ORACLE OWI介紹Oracle
- Oracle ADR介紹Oracle
- oracle排程程式作業dbms_schedulerOracle
- Oracle DRM原理介紹Oracle
- 「Oracle」Oracle高階查詢介紹Oracle
- ORACLE MTS的介紹(zt)Oracle
- oracle常用函式介紹Oracle函式
- Oracle補丁介紹一Oracle
- 1、Oracle 基礎介紹Oracle
- 【NULL】Oracle null值介紹NullOracle
- 關於Oracle Database Vault介紹OracleDatabase
- 11_Oracle bbed工具介紹Oracle
- Oracle 統計資訊介紹Oracle
- Oracle cluster table(1)_概念介紹Oracle
- 【SCN】Oracle SCN 詳細介紹Oracle
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive
- oracle 大頁配置詳細介紹Oracle
- Oracle 備份和恢復介紹Oracle
- 原創:oracle聚合函式介紹Oracle函式
- 原創:oracle 子查詢介紹Oracle
- 原創:oracle DML介紹與使用Oracle
- Oracle無法自動排程DBMS_JOB&DBMS_SCHEDULER案例分析Oracle
- Oracle:RAC 程式簡介Oracle
- oracle定時任務dbms_job與dbms_scheduler使用方法Oracle
- Oracle定時任務dbms_schedulerOracle
- OutputStreamWriter介紹&程式碼實現和InputStreamReader介紹&程式碼實現
- Oracle RAC DRM介紹和關閉DRMOracle
- Oracle認證介紹及入門心得Oracle
- ORACLE 12C Cloud Control(二)介紹OracleCloud
- Oracle資料庫審計功能介紹Oracle資料庫
- 簡單介紹oracle重置序列的方法Oracle
- NIO程式設計介紹程式設計
- oracle使用DBMS_SCHEDULER排程作業Oracle
- oracle複合索引介紹(多欄位索引)Oracle索引
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle