![]() |
|
在數據庫的開發中,當PL/SQL語句很復雜的時候,我想寫一些Log,就像java的Log4j那樣。這樣就可以很好的跟蹤程序的運行情況。在網上找到的文章不是很好用,修改了一下。 1:在Oracle服務器上建立一個目錄并指定權限(我這個是unix的。windows用c:\tmp之類的就行) CREATE DIRECTORY TEMP AS '/tmp'; 如果出現權限錯誤的話,注意自己登陸的方式,我是用oralce用戶TelNet到Unix上的,然后connect / as sysdba。(windows 用戶應該是:用sys用戶登錄到數據庫(ora9i):conn sys/password@oraclesid as sysdba ,sys用戶的缺省密碼和system一樣,都是manager) 2:寫Log文件的SQL語句如下: declare 這樣,就應該可以了,file_handle := utl_file.fopen('TEMP',log.txt','w');中的'w'是指write,也可以是'a',append. 封裝后是這樣的: procedure writeLog(logMessage in Varchar2) is 其中logSwitch 是boolean型,我定義在包中的。如果直接用的話可以是procedure writeLog(logMessage in Varchar2, logSwitch in boolean ) |