日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle utl_file fcopy,ORACLE之UTL_FILE包详解

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle utl_file fcopy,ORACLE之UTL_FILE包详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Utl_File包簡介

Oracle的UTL_FILE包用來實現對磁盤文件的I/O操作。

(1)Oracle10g之前的版本需要指定utl_file包可以操作的目錄。

方法:

1、alter system set utl_file_dir=‘e:/utl‘ scope=spfile;

2、在init.ora文件中,配置如下:UTL_FILE=E:/utl或者UTL_FILE_DIR=E:/utl;

(2)Oracle10g之后的版本,只需要先創建一個路徑即可。

2 Utl_file包的依賴關系

SELECT name FROM dba_dependencies WHERE referenced_name = ‘UTL_FILE‘

UNION

SELECT referenced_name FROM dba_dependencies WHERE name = ‘UTL_FILE‘;

3 UTL_FILE常用方法

3.1 FOPEN()

英文解釋:(1) Open a file for read operations

FOPEN會打開指定文件并返回一個文件句柄用于操作文件。

utl_file.fopen(

file_location IN VARCHAR2,? --路徑

file_name???? IN VARCHAR2,?? --文件名稱

open_mode???? IN VARCHAR2,?? --打開模式 R 讀 W 寫 A 追加

max_linesize? IN BINARY_INTEGER DEFAULT NULL)

RETURN file_type;

參數

location??? 文件地址

filename??? 文件名

openmode??? 打開文件的模式(參見下面說明)

3種文件打開模式:

(1) R只讀模式。一般配合UTL_FILE的GET_LINE來讀文件。

(2) W寫(替換)模式。文件的所有行會被刪除。PUT, PUT_LINE, NEW_LINE, PUTF和FFLUSH都可使用。

(3) A寫(附加)模式。原文件的所有行會被保留。在最末尾行附加新行。

PUT, PUT_LINE, NEW_LINE, PUTF和FFLUSH都可使用max_linesize? 文件每行最大的字符數,包括換行符。最小為1,最大為32767。

打開文件時注意以下幾點:

*?? 文件路徑和文件名合起來必須表示操作系統中一個合法的文件。

*?? 文件路徑必須存在并可訪問;FOPEN并不會新建一個文件夾。

*?? 如果你想打開文件進行讀操作,文件必須存在;如果你想打開文件進行寫操作,文件不存在時,會新建一個文件。

*?? 如果你想打開文件進行附加操作,文件必須存在。A模式不同于W模式。文件不存在時,會拋出INVALID_OPERATION異常。

*?? FOPEN 會拋出以下異常:

(1)UTL_FILE.INVALID_MODE

(2)UTL_FILE.INVALID_OPERATION

(3)UTL_FILE.INVALID_PATH

(4)UTL_FILE.INVALID_MAXLINESIZE

3.2 IS_OPEN()

英文解釋:Returns True If A File Handle Is Open: Otherwise False

utl_file.is_open(file IN FILE_TYPE) RETURN BOOLEAN;

3.3 GET_LINE()

英文解釋:Read a Line from a file

用法:

utl_file.getline(

file?? IN? FILE_TYPE,

buffer OUT VARCHAR2,

len??? IN? BINARY_INTEGER DEFAULT NULL);

UTL_FILE只提供一個方法去讀取數據:GET_LINE 。讀取指定文件的一行到提供的緩存。

函數原型:

PROCEDURE UTL_FILE.GET_LINE (file IN UTL_FILE.FILE_TYPE,? buffer OUT VARCHAR2);

參數說明:

file??? 由FOPEN返回的文件句柄

buffer? 讀取的一行數據的存放緩存

buffer必須足夠大。否則,會拋出VALUE_ERROR 異常。行終止符不會被傳進buffer。

異常:

NO_DATA_FOUND

VALUE_ERROR

UTL_FILE.INVALID_FILEHANDLE

UTL_FILE.INVALID_OPERATION

UTL_FILE.READ_ERROR

3.4 PUT()

英文解釋:Writes a string to a file

用法:

utl_file.put(file IN FILE_TYPE, buffer IN VARCHAR2);

函數原型:

PROCEDURE UTL_FILE.PUT (file IN UTL_FILE.FILE_TYPE, buffer OUT VARCHAR2);

參數說明:

file?? 由FOPEN返回的文件句柄

buffer? 包含要寫入文件的數據緩存;Oracle8.0.3及以上最大允許32kB,早期版本只有1023B。

UTL_FILE.PUT輸出數據時不會附加行終止符。

異常:

UTL_FILE.INVALID_FILEHANDLE

UTL_FILE.INVALID_OPERATION

UTL_FILE.WRITE_ERROR

3.5 NEW_LINE()

英文解釋:Writes one or more operating system-specific line terminators to a file

用法:

utl_file.new_line(file IN FILE_TYPE, lines IN NATURAL := 1);

UTL_FILE.NEW_LINE

在當前位置輸出新行或行終止符,必須使用NEW_LINE來結束當前行,或者使用PUT_LINE輸出帶有行終止符的完整行數據。

函數原型:

PROCEDURE UTL_FILE.NEW_LINE (file IN UTL_FILE.FILE_TYPE, lines IN NATURAL := 1);

參數說明:

file?? 由FOPEN返回的文件句柄

lines?? 要插入的行數

注意:

如果不指定lines參數,NEW_LINE會使用默認值1,在當前行尾換行。如果要插入一個空白行,可以使用以下語句:

UTL_FILE.NEW_LINE (my_file, 2);

如果lines參數為0或負數,什么都不會寫入文件。

異常:

VALUE_ERROR

UTL_FILE.INVALID_FILEHANDLE

UTL_FILE.INVALID_OPERATION

UTL_FILE.WRITE_ERROR

3.6 PUT_LINE()

英文解釋:Writes a line to a file.? Appends an operating system-specific line terminator

用法:

utl_file.put_line(

file????? IN FILE_TYPE,

buffer??? IN VARCHAR2,

autoflush IN BOOLEAN DEFAULT FALSE);

UTL_FILE.PUT_LINE

輸出一個字符串以及一個與系統有關的行終止符

函數原型:

PROCEDURE UTL_FILE.PUT_LINE (file IN UTL_FILE.FILE_TYPE, buffer IN VARCHAR2);

參數說明:

file?? 由FOPEN返回的文件句柄

buffer?? 包含要寫入文件的數據緩存;Oracle8.0.3及以上最大允許32kB,早期版本只有1023B

注意:

在調用UTL_FILE.PUT_LINE前,必須先打開文件。

異常:

UTL_FILE.INVALID_FILEHANDLE

UTL_FILE.INVALID_OPERATION

UTL_FILE.WRITE_ERROR

3.7 PUTF()

英文解釋:A PUT procedure with formatting

utl_file.putf(

file?? IN file_type,

format IN VARCHAR2,

arg1?? IN VARCHAR2 DEFAULT NULL,

arg2?? IN VARCHAR2 DEFAULT NULL,

arg3?? IN VARCHAR2 DEFAULT NULL,

arg4?? IN VARCHAR2 DEFAULT NULL,

arg5?? IN VARCHAR2 DEFAULT NULL);

UTL_FILE.PUTF

以一個模版樣式輸出至多5個字符串,類似C中的printf

函數原型:

PROCEDURE UTL_FILE.PUTF

(file IN FILE_TYPE,

format IN VARCHAR2,

arg1 IN VARCHAR2 DEFAULT NULL,

arg2 IN VARCHAR2 DEFAULT NULL,

arg3 IN VARCHAR2 DEFAULT NULL,

arg4 IN VARCHAR2 DEFAULT NULL,

arg5 IN VARCHAR2 DEFAULT NULL);

參數說明:

file?? 由FOPEN返回的文件句柄

format?? 決定格式的格式串

argN?? 可選的5個參數,最多5個格式串可使用以下樣式

%s? 在格式串中可以使用最多5個%s,與后面的5個參數一一對應%s會被后面的參數依次填充,如果沒有足夠的參數,%s會被忽視,不被寫入文件

n? 換行符。在格式串中沒有個數限制

異常:

UTL_FILE.INVALID_FILEHANDLE

UTL_FILE.INVALID_OPERATION

UTL_FILE.WRITE_ERROR

3.8 PUT_RAW()

英文解釋:Accepts as input a RAW data value and writes the value to the output buffer

用法:

utl_file.put_raw(

file????? IN file_type,

buffer??? IN RAW,

autoflush IN BOOLEAN DEFAULT FALSE

);

3.9 FCLOSE()

函數作用:關閉命名的文件:

utl_file.fclose(file IN OUT file_type);

3.10 FCLOSE_ALL()

函數作用:關閉所有文件

3.11 FRENAME()

英文解釋:Rename An Operating System File

utl_file.frename (

src_location? IN VARCHAR2,

src_filename? IN VARCHAR2,

dest_location IN VARCHAR2,

dest_filename IN VARCHAR2,

overwrite???? IN BOOLEAN DEFAULT FALSE);

BEGIN

utl_file.frename(v_pathna, ‘test.txt‘, v_pathna, ‘x.txt‘, TRUE);

END frename;

/

存儲過程FRENAME修改一個文件的名稱,這樣我們可以把一個文件從一個位置移動到另外一個位置。

函數原型:

FRENAME(location VARCHAR2,

filename VARCHAR2,

dest_dir VARCHAR2,

dest_file VARCHAR2,

[ overwrite BOOLEAN ])

參數:

location

目錄名稱,存放在pg_catalog.edb_dir.dirname中,這個目錄包含要改名的文件。

filename

要改名的源文件名稱。

dest_dir

目錄名稱,存放在pg_catalog.edb_dir.dirname中,這個目錄是被改名文件所在的目錄。

dest_file

原始文件的新名稱。

overwrite

如果設置為”true”,在dest_dir目錄中覆蓋任何名為dest_file的文件。若設置為”false”,就會產生異常。這是缺省情況。

3.12 FREMOVE()

英文解釋:Delete An Operating System File

utl_file.fremove(location IN VARCHAR2, filename IN VARCHAR2);

-- dump.txt is created in the FCOPY demo

BEGIN

utl_file.fremove(v_pathna, ‘dump.txt‘);

END fremove;

/

3.13 FFLUSH()

英文解釋:Physically writes pending data to the file identified by the file handle

用法:

utl_file.fflush(file IN file_type);

函數原型:

PROCEDURE UTL_FILE.FFLUSH (file IN UTL_FILE.FILE_TYPE);

參數說明:

file?? 由FOPEN返回的文件句柄

注意:

操作系統可能會緩存數據來提高性能。因此可能調用put后,打開文件卻看不到寫入的數據。在關閉文件前要讀取數據的話可以使用UTL_FILE.FFLUSH。

典型的使用方法包括分析執行進度和調試紀錄。

異常:

UTL_FILE.INVALID_FILEHANDLE

UTL_FILE.INVALID_OPERATION

UTL_FILE.WRITE_ERROR

3.14 FCOPY()

英文解釋:Copies a contiguous portion of a file to a newly created file

utl_file.fcopy(

src_location? IN VARCHAR2,

src_filename? IN VARCHAR2,

dest_location IN VARCHAR2,

dest_filename IN VARCHAR2,

start_line??? IN BINARY_INTEGER DEFAULT 1,

end_line????? IN BINARY_INTEGER DEFAULT NULL);

BEGIN

utl_file.fcopy(v_pathna, ‘test.txt‘, v_pathna, ‘dump.txt‘);

END;

UTL_FILE.FCOPY

存儲過程FCOPY把一個文件中文本拷貝到另外一個文件中。

函數原型:

FCOPY(location VARCHAR2, filename VARCHAR2,dest_dir VARCHAR2, dest_file VARCHAR2[, start_line PLS_INTEGER [, end_line PLS_INTEGER ] ])

參數

location

表示目錄名稱,存放在pg_catalog.edb_dir.dirname中,這個目錄包含要拷貝的文件。

filename

要拷貝文件的名稱。

dest_dir

表示目錄名稱,存放在pg_catalog.edb_dir.dirname中,是源文件要拷貝到目的目錄。

dest_file

目標文件的名稱。

start_line

源文件中文本行號,用于指定開始拷貝的位置。缺省值是1。

end_line

源文件中最后一行要拷貝文本的行號。如果省略這個參數或者這個參數為空,那么就一直拷貝到文件中最后一行。

原文:http://www.cnblogs.com/oracle-dba/p/3856130.html

總結

以上是生活随笔為你收集整理的oracle utl_file fcopy,ORACLE之UTL_FILE包详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲色图影院 | 国产99视频在线 | 久久久亚洲成人 | 色婷婷在线播放 | 激情网五月天 | 看特级毛片 | 欧美性猛交xxxxx水多 | 羞羞动漫在线观看 | 国产精品一区久久久 | 91精品一区二区三 | 九九在线观看免费高清版 | 黄色复仇草 | 寡妇一级片 | 91桃色在线 | 欧美高h | 国产精品九九热 | 69sex久久精品国产麻豆 | 精品国产乱码久久久久久鸭王1 | 日韩午夜激情视频 | 吊侵犯の奶水授乳羞羞漫画 | 青青免费在线视频 | 日韩精品啪啪 | 国产精品无码电影在线观看 | 麻豆性生活 | 日韩一级片网址 | 动漫美女视频 | 91看片看淫黄大片 | www一区二区三区 | 国产夫妻久久 | 中文字幕乱码一区 | 四虎国产精品免费 | 伦在线 | 天天骑夜夜操 | 天堂在线视频 | 午夜成人影视 | 最近中文字幕mv免费高清在线 | 午夜影院免费版 | 婷婷综合 | 午夜一区二区三区在线观看 | 少妇特黄a一区二区三区 | 国产日韩在线免费观看 | 色婷婷亚洲一区二区三区 | 91玉足脚交白嫩脚丫 | 色香色香欲天天天影视综合网 | 国产情侣自拍小视频 | 黄色特级毛片 | 国语对白做受 | 久久五月综合 | 夜夜夜网站| 午夜精品久久久久久久四虎美女版 | 18性xxxxx性猛交 | 国产91一区 | 蜜臀av无码精品人妻色欲 | 五月天久久久 | 久久国产乱 | 免费av中文字幕 | 午夜影院在线 | av免费播放网站 | 国产色av | 日韩欧美视频一区 | 国产亚洲激情 | 欧美精品人妻一区二区 | 日韩在线精品视频一区二区涩爱 | 香蕉视频一区二区 | 亚洲一区在线看 | 国产精品视频 | 国产91丝袜在线播放0 | 中文在线不卡视频 | 久久精品无码专区免费 | 色呦呦中文字幕 | 激烈的性高湖波多野结衣 | 中国二级毛片 | 欧美大尺度做爰啪啪床戏明星 | 亚洲а∨天堂久久精品2021 | 永久免费av网站 | 国产视频一二区 | 蜜臀av一区二区三区 | 亚洲熟悉妇女xxx妇女av | 日韩久久影院 | 日本少妇电影 | 色婷婷精品| 国产成人精品一区二三区 | 亚洲精品二区三区 | 一本大道综合伊人精品热热 | 在线观看污网站 | 高清av免费 | 手机在线观看日韩av | 给我免费观看片在线电影的 | 国产寡妇色xxⅹ交肉视频 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 在线看日韩 | 国产真实乱人偷精品 | 天天av网 | 久久精品婷婷 | 九色视频偷拍少妇的秘密 | 久久亚洲熟女cc98cm | 久久久夜 | 亚洲爽妇网 | 天天操精品 |