mysql utl_file_Oracle的UTL_FILE包
Oracle的包UTL_FIle用于讀寫操作系統的文件,前提是首先創建Directory對象、授權。然后就可以使用UTL_FILE包中提供的類型、過程、
Oracle的包UTL_FIle用于讀寫操作系統的文件,前提是首先創建Directory對象、授權。然后就可以使用UTL_FILE包中提供的類型、過程、函數來讀取,寫入,,操作目錄中的文件了。
創建Directory的示例如下:
SQL> CREATE DIRECTORY CZW AS 'D:\';
Directory created
SQL> GRANT READ,WRITE ON DIRECTORY CZW TO SCOTT;
Grant succeeded
1、FILE_TYPE
該類型是UTL_FILE包中定義的記錄類型,其成員是私有的,不能夠被直接引用。該類型的定義如下:
TYPE file_type IS RECORD(
id BINARY_INTEGER,datatype BINARY_INTEGER
);
2、FOPEN
該函數用于打開文件。使用這個函數最多可以打開50個文件,語法如下:
UTL_FILE.FOPEN(
location IN VARCHAR2,
filename IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER
)
RETURN file_type;
當成功的執行了該函數之后,就會返回文件句柄,訪問該文件可以使用該文件句柄。如果執行失敗的話,則會觸發例外或者顯示錯誤。注意,當指定文件位置的時候,必須要使用DIRECTORY對象,并且其名稱必須為大寫。示例如下:
DECLARE
HANDLE UTL_FILE.FILE_TYPE;
BEGIN
HANDLE := UTL_FILE.fopen('CZW','DYWT.TXT','R',1000);
DBMS_OUTPUT.PUT_LINE('D:\DYWT.TXT已經被打開');
END;
3、FOPEN_NCHAR
該函數用于以UNICODE方式打開文件。當使用該函數打開文件之后,讀寫文件會使用UNICODE取代數據庫字符集。語法如下:
UTL_FILE.FOPEN_NCHAR(
location IN VARCHAR2,
filename IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER)
RETURN file_type;
4、IS_OPEN
該函數用于確定文件是否已經被打開,語法如下:
UTL_FILE.IS_OPEN(file IN FILE_TYPE) RETURN BOOLEAN;
如上所示,file用于指定文件句柄。如果文件已經被打開,則返回TRUE,否則則返回FALSE,該函數的示例如下:
DECLARE
HANDLE UTL_FILE.FILE_TYPE;
BEGIN
IF NOT UTL_FILE.is_open(HANDLE) THEN
HANDLE := UTL_FILE.fopen('CZW','DYWT.TXT','R',1000);
END IF;
DBMS_OUTPUT.PUT_LINE('D:\DYWT.TXT已經被打開');
END;
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的mysql utl_file_Oracle的UTL_FILE包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css三角形的IE兼容写法
- 下一篇: linux cmake编译源码,linu