Oracle資料庫PL SQL過程除錯的輸出方法

2021-12-30 00:28:44 字數 1715 閱讀 2117

1.最基本的dbms_output.put_line()方法

隨便在什麼地方,只要是begin和end之間,就可以使用dbms_output.put_line(output);

然而這會有乙個問題,就是使用該函式一次最多隻可以顯示255個字元,否則緩衝區會溢位。

此外,函式dbms_output.enable(20000)這種函式,僅僅是設定整個過程的全部輸出緩衝區大小,而非dbms_output.put_line()的緩衝區大小。

對於超過255個字元的變數,使用dbms_output.put_line()方法是沒有效的。據說在oracle10中,解除了這個限制,可以輸出任意大小的字串。

declare

output varchar2(200);

begin

output:=...; //賦值

dbms_output.put_line(output);

end;

如果以上執行結果成功但沒有顯示請執行 set serveroutput on; 然後就可以了;

2.使用表的方法

首先建立一張表,然後在pl/sql中將要輸出的內容插到表中。然後再從表中檢視內容。對於這種方法一次可以輸出幾千個字元。

(1) create table my_output{

id number(4),

txt varchar2(4000)

(2) declare

output varchar2(4000);

strsql varchar2(4500);

count number(4):=0;

begin

strsql:=delete * from my_output;

execute immediate strsql;

output:=...; //賦值

count:=count+1;

strsql:=insert into my_output value (count,||output||);

--在單引號中相當於字元

execute immediate strsql;

end;

3.使用輸出檔案的方法

如果變數非常大,以致連使用表都沒有辦法插入時,只有使用檔案方式了。

(1) create or replace directory tmp as d: esttmp;

--建立乙個資料夾路徑

(2) declare

file_handle utl_file.file_type;

output varchar2(30000);

begin

output:="....";

file_handle := utl_file.fopen(tmp, output.txt, w,[1-32767]);

--四個引數:目錄,檔名,開啟方式,最大行數(預設為2000)

utl_file.put_line(file_handle, output);

utl_file.fclose(file_handle);

exception

when utl_file.invalid_path then

raise_application_error(-20000, error: invalid path for file or path not in init.ora.);

end;

ORACLE資料庫PLSQL筆記

oracle資料庫plsql筆記 pl sql 是oracle的程式語言,用於擴充套件sql的程式設計能力,為資料庫程式增加了許多可能的功能。它允許將過程控制語句與 sql語句結合使用oracle 特有的程式語言pl sql補充了標準的關聯式資料庫語言sql,提供了各種過程化特性,包括迴圈 if t...

PLSQL連線oracle資料庫

方法一 instantclient 12 2 1 安裝 instantclient 12 2 軟體 免安裝oracle客戶端 2 plsql配置 開啟plsql 點取消,彈出plsql主介面 選單欄的tools 屬性preferences 首選項 連線 3 連線資訊 1 連線資訊 可以是ip 152...

plsql 匯出oracle資料庫

plsql 匯出資料庫有兩個問題,乙個是只匯出結構,乙個是匯出表結構加資料這樣的,首先人家讓我導成sql語句 這不是簡單,首先開啟plsql 一 匯出結構 1 然後tools export user objects.然後出來一片空白 2 要選擇哪個user 3 上面會出現好多表,選擇一下你要匯出的表...