[quote][size=medium] 在做oracle plsql 程式設計的時候,難免要對檔案進行操作,如讀取oracle伺服器上的別的目錄下的資料檔案,匯入到oracle庫中;雖然在plsql developer工具中提供了debug功能,但當有輸出時,debug的控制台不能及時看到,除非停止debug。如果在plsql程式中輸出日誌資訊到檔案中,使得plsql程式除錯、執行跟中更加方便,因為大家都知道日誌的作用是什麼。
下面講講怎麼在oracle的plsql程式中寫入日誌到oracle伺服器的檔案中。雖然我們是用plsql developer開發和執行plsql程式,但是plsql developer經常是安裝在遠端計算機上,這裡說的操作檔案,是指plsql操作oracle dbms所在的伺服器上,如果oracle安裝在linux系統,則是操作linux上的檔案;安裝在windows上,則是操作windows上的檔案,對於本次演示前者會相對麻煩些,後者容易些。因為我用的oracle安裝在linux上,所以以linux系統為例講解。注:「--」 表示注釋行
[/size][/quote]
一、建立存放日誌檔案的目錄。
1.以root許可權登入linux系統。
2.建立乙個目錄存放日誌檔案。
# mkdir /home/oracle/plog
3.進入/home/oracle/,賦予oracle使用者對plog目錄讀寫許可權
# chown oracle plog
4.檢驗oracle使用者是否對該目錄有讀寫許可權,切換到oracle使用者下
# su oracle
$ cd plog
$ touck plsql.log
-- 這裡是建立乙個檔案的意思,如果沒有許可權,則建立失敗並提示。
-- 如果建立成功,則說明許可權授權成功,我們可以把plsql.log刪除 $ rm plsql.log,這個隨便。
二、介紹plsql程式中操作檔案,oracle提供 utl_file 包是專門用來操作磁碟上的檔案。
1.需要建立乙個directory物件
sql> create or replace directory plog_dir as '/home/oracle/plog';
2.以sys使用者登入plsql developer,給執行plsql的程式使用者授權對該目錄可寫、可讀的許可權;對 utl_file 有可執行的許可權。
sql> grant read,write on directory plog_dir to scott;
sql> grant execute on utl_file to scott;
--scott是登入oracle資料庫的乙個使用者。
3.編寫乙個寫入日誌的儲存過程。
create or replace procedure logger
(v_file_name in varchar2,--存放日誌檔名
v_log_msg in varchar2--日誌訊息)is
v_file_handle utl_file.file_type;--宣告乙個檔案操作控制代碼
begin
v_file_handle:=utl_file.fopen('plog_dir',v_file_name,'a'); --例項化乙個控制代碼
utl_file.put_line(v_file_handle,v_log_msg);--寫入資訊
utl_file.fflush(v_file_handle);--把緩衝區的資訊寫入檔案
utl_file.fclose(v_file_handle); --關閉檔案控制代碼
exception
when others then
dbms_output.put_line('插入日誌異常,錯誤**是:'||sqlcode||'錯誤訊息是:'||sqlerrm);
end;
注:1.'plog_dir' 是directory,必須大寫
2.'a' 是在日誌檔案後追加資訊
三、在需要寫入日誌的地方呼叫該儲存過程,就可以了。
PLSQL 操作 ORACLE 伺服器上的檔案
在做oracle plsql 程式設計的時候,難免要對檔案進行操作,如讀取 oracle 伺服器上的別的目錄下的資料檔案,匯入到 oracle 庫中 雖然在 plsql developer 工具中提供了 debug 功能,但當有輸出時,debug 的控制台不能及時看到,除非停止 debug 如果在 ...
pl sql連線遠端oracle伺服器
前提是電腦必須安裝oracle客戶端解壓版。配置方法 1 找到tnsnames.ora檔案。2 用文字方式開啟,新增以下內容 1 2 3 4 5 6 7 8 本地例項名 description address protocol tcp host 遠端資料庫ip位址 port 遠端伺服器端口號 con...
PLSQL檢視Oracle的sql操作記錄
1 在plsql按鍵ctrl e 可以查詢我們在plsql執行過的歷史sql,包括時間 使用者 語句 2 select from v sql 執行sql查詢,查詢內容包含所有使用者和應用系統對資料庫的操作,執行過的sql 3 select from v process 查詢資料庫的程序 4 v se...