DBMS_OUTPUT包語法簡介及使用小實驗
DBMS_OUTPUT 包--語法
1、enable:在serveroutput on的情況下,用來使dbms_output生效(預設即開啟)
說明:該過程用於啟用本包,如果沒有被啟用,將無法呼叫本包的其它其餘過程和函式。
當呼叫該過程,緩衝區最大尺寸為1000000位元組,最小為2000位元組,預設為20000位元組。
注意:如果在SQL*PLUS中使用SERVEROUTPUT選項,則沒有必要使用該過程。
語法:DBMS_OUTPUT.ENABLE(buffer_size in integer default 20000);
2、disable:在serveroutput on的情況下,用來使dbms_output失效
說明:該過程用於禁止本包,並清除緩衝區的內容。當本包被禁止,將無法呼叫本包的其它其餘過程和函式。
注意:如果在SQL*PLUS中使用SERVEROUTPUT選項,則沒有必要使用該過程。
語法:DBMS_OUTPUT.DISABLE;
3、put:put_line:
說明:過程put_line用於將一個完整行的資訊寫入到緩衝區中,會自動在行的尾部追加行結束符;
過程put則用地分塊建立行資訊,需要換行需要使用過程new_line追加行結束符。
語法:dbms_output.put(item in number\varchar2\date);dbms_output.put_line(item in number\varchar2\date);
4、new_line:作為一行的結束,可以理解為寫入buffer時的換行符
說明:該過程用於在行的尾部追加行結束符。
語法:dbms_output.new_line;
5、get_line:get_lines:get_line之後會將buffer清空
說明:過程get_line用於取得緩衝區的單行資訊,get_lins用於取得緩衝區的多行資訊。
語法:dbms_output.get_line(line out varchar2,status out integer);
dbms_output.get_lines(lines out chararr,numlines in out integer);
其中line用於取得緩衝區的單行資訊(最大255位元組),status用於返回過程執行是否成功,0成功1表示沒有行;
lines用於取得緩衝區的多行資訊,numlines指定要檢索的行數,並返回實際檢索的行數。
需要注意以下幾點:
-----------------------
1、set serveroutput on:如果要在sqlplus中看到dbms_output的輸出,則必須設定該引數值為on
2、每行能容納的最大值是32767bytes
3、buffer的預設值是20000bytes,可設定的最小值為2000bytes,最大值為1000000bytes
serveroutput OFF
BYS@ bys3> begin
2 dbms_output.put_line('hello world!');
3 dbms_output.put('bys');
4 dbms_output.new_line;
5 end;
6 /
PL/SQL procedure successfully completed.
#############################
BYS@ bys3>show serveroutput
BYS@ bys3> begin
2 dbms_output.put_line('hello world!'); --直接輸出hello world!
3 dbms_output.put('bys');
4 dbms_output.put('good');
5 dbms_output.new_line; --輸出buffer中的,bys good在同一行。
6 end;
7 /
hello world!
bysgood
PL/SQL procedure successfully completed.
BYS@ bys3> begin
2 dbms_output.put_line('hello world!');
3 dbms_output.put('bys');
4 dbms_output.new_line; --多增加一個new_line,相當於增加換行符--與上一語句相比,輸入中bys和good在不同行。
5 dbms_output.put('good');
6 dbms_output.new_line;
7 end;
8 /
hello world!
bys
good
PL/SQL procedure successfully completed.
##################################################################################
var line varchar2(100);
var status number;
begin
dbms_output.put_line('hello world!');
dbms_output.put('bys');
dbms_output.new_line;
dbms_output.put('good');
dbms_output.new_line;
dbms_output.get_line(:line,:status);
end;
BYS@ bys3>var line varchar2(100);
BYS@ bys3>var status number;
BYS@ bys3> begin
2 dbms_output.put_line('hello world!');
3 dbms_output.put('bys');
4 dbms_output.new_line;
5 dbms_output.put('good');
6 dbms_output.new_line;
dbms_output.get_line(:line,:status);
end;
9 /
bys
good
PL/SQL procedure successfully completed.
1、enable:在serveroutput on的情況下,用來使dbms_output生效(預設即開啟)
說明:該過程用於啟用本包,如果沒有被啟用,將無法呼叫本包的其它其餘過程和函式。
當呼叫該過程,緩衝區最大尺寸為1000000位元組,最小為2000位元組,預設為20000位元組。
注意:如果在SQL*PLUS中使用SERVEROUTPUT選項,則沒有必要使用該過程。
語法:DBMS_OUTPUT.ENABLE(buffer_size in integer default 20000);
2、disable:在serveroutput on的情況下,用來使dbms_output失效
說明:該過程用於禁止本包,並清除緩衝區的內容。當本包被禁止,將無法呼叫本包的其它其餘過程和函式。
注意:如果在SQL*PLUS中使用SERVEROUTPUT選項,則沒有必要使用該過程。
語法:DBMS_OUTPUT.DISABLE;
3、put:put_line:
說明:過程put_line用於將一個完整行的資訊寫入到緩衝區中,會自動在行的尾部追加行結束符;
過程put則用地分塊建立行資訊,需要換行需要使用過程new_line追加行結束符。
語法:dbms_output.put(item in number\varchar2\date);dbms_output.put_line(item in number\varchar2\date);
4、new_line:作為一行的結束,可以理解為寫入buffer時的換行符
說明:該過程用於在行的尾部追加行結束符。
語法:dbms_output.new_line;
5、get_line:get_lines:get_line之後會將buffer清空
說明:過程get_line用於取得緩衝區的單行資訊,get_lins用於取得緩衝區的多行資訊。
語法:dbms_output.get_line(line out varchar2,status out integer);
dbms_output.get_lines(lines out chararr,numlines in out integer);
其中line用於取得緩衝區的單行資訊(最大255位元組),status用於返回過程執行是否成功,0成功1表示沒有行;
lines用於取得緩衝區的多行資訊,numlines指定要檢索的行數,並返回實際檢索的行數。
需要注意以下幾點:
-----------------------
1、set serveroutput on:如果要在sqlplus中看到dbms_output的輸出,則必須設定該引數值為on
2、每行能容納的最大值是32767bytes
3、buffer的預設值是20000bytes,可設定的最小值為2000bytes,最大值為1000000bytes
1.set serveroutput為OFF時,dbms_output無輸出
BYS@ bys3>show serveroutputserveroutput OFF
BYS@ bys3> begin
2 dbms_output.put_line('hello world!');
3 dbms_output.put('bys');
4 dbms_output.new_line;
5 end;
6 /
PL/SQL procedure successfully completed.
#############################
2.set serveroutput為ON時,測試put_line,put,new_line
BYS@ bys3>set serveroutput onBYS@ bys3>show serveroutput
BYS@ bys3> begin
2 dbms_output.put_line('hello world!'); --直接輸出hello world!
3 dbms_output.put('bys');
4 dbms_output.put('good');
5 dbms_output.new_line; --輸出buffer中的,bys good在同一行。
6 end;
7 /
hello world!
bysgood
PL/SQL procedure successfully completed.
BYS@ bys3> begin
2 dbms_output.put_line('hello world!');
3 dbms_output.put('bys');
4 dbms_output.new_line; --多增加一個new_line,相當於增加換行符--與上一語句相比,輸入中bys和good在不同行。
5 dbms_output.put('good');
6 dbms_output.new_line;
7 end;
8 /
hello world!
bys
good
PL/SQL procedure successfully completed.
##################################################################################
3.測試get_line的使用--get_linesi不知道怎麼實驗。。
語句:var line varchar2(100);
var status number;
begin
dbms_output.put_line('hello world!');
dbms_output.put('bys');
dbms_output.new_line;
dbms_output.put('good');
dbms_output.new_line;
dbms_output.get_line(:line,:status);
end;
BYS@ bys3>var line varchar2(100);
BYS@ bys3>var status number;
BYS@ bys3> begin
2 dbms_output.put_line('hello world!');
3 dbms_output.put('bys');
4 dbms_output.new_line;
5 dbms_output.put('good');
6 dbms_output.new_line;
dbms_output.get_line(:line,:status);
end;
9 /
bys
good
PL/SQL procedure successfully completed.
相關文章
- Tcl語法簡介
- SPF 記錄:原理、語法及配置方法簡介
- DBMS_OUTPUT包學習
- Hive內部函式簡介及查詢語法Hive函式
- Go 語言簡介(上)— 語法Go
- Azure Bicep(二)語法簡介
- Flyway簡介及使用
- openvas簡介及使用
- C#基礎程式設計——簡介及基礎語法C#程式設計
- oracle系統包—-dbms_output用法Oracle
- GOLANG簡介與基礎語法Golang
- 小C語言--詞法分析程式(編譯原理實驗一)C語言詞法分析編譯原理
- Typora編輯器Markdown語法簡介
- flex設計思想和語法簡介Flex
- Abstract Syntax Tree 抽象語法樹簡介抽象語法樹
- mySQL語法中的儲存過程及if語句的使用簡例MySql儲存過程
- CRC校驗原理簡介及C程式碼實現說明C程式
- Locust 簡介及安裝使用
- AWK簡介及使用例項
- maven簡介及基礎使用Maven
- Yaml檔案語法及讀寫小結YAML
- svg01——svg簡介及簡單使用SVG
- 前端 JS 之 AJAX 簡介及使用前端JS
- iOS CocoaPods簡介及基本使用iOS
- OpenGL簡單介紹及實踐
- Flume NG 簡介及配置實戰
- css基本語法總結及使用CSS
- Calcite(一):javacc語法框架及使用Java框架
- laravel中使用markdown及語法高亮Laravel
- Golang : pflag 包簡介Golang
- Golang : cobra 包簡介Golang
- 小滿小學簡介
- 編譯原理實驗2:語法分析編譯原理語法分析
- ASP.NET Core的實時庫: SignalR簡介及使用ASP.NETSignalR
- 簡單介紹nginx反向代理及使用Nginx
- 委託的簡化語法,聊聊匿名方法和閉包
- 【JMICRO】 微服務簡介及非同步RPC體驗微服務非同步RPC
- Tekton 設計簡介 及 實踐