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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql utl_file_利用UTL_FILE包实现文件I/O操作

發布時間:2023/12/20 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql utl_file_利用UTL_FILE包实现文件I/O操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要:本文主要討論如何利用Oracle的UTL_FILE包來實現對磁盤文件的I/O操作。

文件I/O對于數據庫的開發來說顯得很重要,比如如果數據庫中的一部分數據來自于磁盤文件,那么就需要使用I/O接口把數據導入到數據庫中來。在PL/SQL中沒有直接的I/O接口,一般在調試程序時可以使用Oracle自帶的DBMS_OUTPUT包的put_line函數(即向屏幕進行I/O操作)即可,但是對于磁盤文件的I/O操作它就無能為力了。其實Oracle同樣也提供了可以進行文件I/O的實用包-----UTL_FILE包,利用這個實用包提供的函數來實現對磁盤的I/O操作。

1. 準備工作

由于Oracle數據庫對包創建的目錄有一個安全管理的問題,所以并不是所有的文件目錄能夠被UTL_FILE包所訪問,要更新這種目錄設置,就得到init.ora里將UTL_FILE_DIR域設置為*,這樣UTL_FILE包就可以對所有的目錄文件進行訪問了。

2. 文件I/O的實施

UTL_FILE包提供了很多實用的函數來進行I/O操作,主要有以下幾個函數:

fopen

打開指定的目錄路徑的文件。

get_line

獲取指定文件的一行的文本。

put_line

向指定的文件寫入一行文本。

fclose

關閉指定的文件。

下面利用這些函數,實現從文件取數據,然后將數據寫入到相應的數據庫中。

create or replace procedure loadfiledata(p_path varchar2,p_filename varchar2) as

v_filehandle utl_file.file_type; --定義一個文件句柄

v_text varchar2(100); --存放文本

v_name test_loadfile.name%type;

v_addr_jd test_loadfile.addr_jd%type;

v_region test_loadfile.region%type;

v_firstlocation number;

v_secondlocation number;

v_totalinserted number;

begin

if (p_path is null or p_filename is null) then

goto to_end;

end if;

v_totalinserted:=0;

/*open specified file*/

v_filehandle:=utl_file.fopen(p_path,p_filename,'r');

loop

begin

utl_file.get_line(v_filehandle,v_text);

exception

when no_data_found then

exit;

end ;

v_firstlocation:=instr(v_text,',',1,1);

v_secondlocation:=instr(v_text,',',1,2);

v_name:=substr(v_text,1,v_firstlocation-1);

v_addr_jd:=substr(v_text,v_firstlocation+1,v_secondlocation-v_firstlocation-1);

v_region:=substr(v_text,v_secondlocation+1);

/*插入數據庫操作*/

insert into test_loadfile

values (v_name,v_addr_jd,v_region);

commit;

end loop;

<>

null;

end loadfiledata;

/

3. 測試環境

首先要創建一個目標表TEST_LOADFILE,它用來存儲文件中的數據:

CREATE TABLE TEST_LOADFILE (

NAME VARCHAR2 (100) NOT NULL,

ADDR_JD VARCHAR2 (20),

REGION VARCHAR2 (6) ) ;

然后就可以在sqlplus里輸入如下的代碼并執行即可。

declare

v_path varchar2(200);

v_filename varchar2(200);

begin

v_path:='F:\ ';

v_filename:='地址信息.txt';

loadfiledata(v_path,v_filename);

end;

/

需要注意的是,這里我的調試路徑為“f:\”地址,如果讀者自己建立實驗環境,應該設置為的“地址信息”文件的路徑

整個調試環境是:

服務器端:UNIX操作系統+Oracle9i數據庫服務器,

客戶端: sqlplus,操作系統為WIN2000。

4. 小結

Oracle本身提供了大量使用的包,如UTL_HTTP包,DBMS_OUTPUT包等,這些包分別封裝了不同的功能,它們使得進行大量的應用程序開發的可能,從而拓展了Oracle的功能。

create or replace procedure test_error

(

str out varchar2,

str2 out varchar2

)

as

begin

declare

isto_file utl_file.file_type;

err_num number;

i number;

k number;

m number;

err_msg varchar2(100);

fp_buffer varchar2(4000);

begin

isto_file := utl_file.fopen('IST0_DIR', 'kj021320.txt', 'W');

i:=0;

while (i<2)

loop

utl_file.put_line(isto_file, 'My');

i:=i+1;

end loop;

utl_file.fflush(isto_file);

utl_file.fclose(isto_file);

isto_file := utl_file.fopen('IST0_DIR', 'kj021320.txt', 'a');

m:=0;

while (m<2)

loop

utl_file.put_line(isto_file, 'My');

m:=m+1;

end loop;

utl_file.fflush(isto_file);

utl_file.fclose(isto_file);

isto_file := utl_file.fopen('IST0_DIR', 'kj021320.txt', 'R');

str2:='';

loop

utl_file.get_line (isto_file , fp_buffer );

str2:=str2 || fp_buffer;

end loop;

utl_file.fclose(isto_file);

for j in 1..10? /* for */

loop

k:=11;

end loop;

EXCEPTION

WHEN OTHERS THEN

err_num:=sqlcode; /* 異常num */

err_msg:=substr(sqlerrm,1,100); /* 異常msg */

str:=substr(sqlerrm,1,100);

end;

end test_error;

首先我們得先建立一個ORACLE的目錄對象 指向C:"

create or replace directory IST0_DIR as ’C:"’;

--然后我們對這個目錄對象進行授權其實這步可以忽略grant read, write on directory IST0_DIR to用戶;

--以上前奏完成了! 我們可以寫PLSQL進行操作文件了

總結

以上是生活随笔為你收集整理的mysql utl_file_利用UTL_FILE包实现文件I/O操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产人成视频在线观看 | 岛国av在线 | 黑人av| 国产农村妇女毛片精品久久麻豆 | 亚洲国产剧情 | av电影在线观看不卡 | 91国产免费看 | 日日骚av | 麻豆中文字幕 | 欧美1| 亚洲精品2区 | 一女被多男玩喷潮视频 | 亚洲一区精品视频 | 黄色网页免费看 | 男女午夜啪啪 | 先锋影音av资源网站 | 国精产品一区一区三区在线 | 亚洲图片在线播放 | 国产免费av一区二区 | 夜夜天天| 日本精品免费一区二区三区 | 波多野结衣一本 | 午夜影院男女 | 无码人妻久久一区二区三区蜜桃 | 欧美日韩成人一区二区三区 | 欧美日韩视频 | japanesehdxxxx| 进去里视频在线观看 | 亚洲天堂2024| 久久无毛| 高清免费视频日本 | 亚洲激情a | 国产精品一区二区黑人巨大 | 性少妇mdms丰满hdfilm | 风流少妇一区二区三区91 | 精品黑人| 亚洲国产三级 | 黄色av免费网站 | 国产精品色悠悠 | 欧美色图激情小说 | 国产99热 | 青青草成人免费 | 国产欧美精品 | 羞羞网站在线观看 | 醉酒壮男gay强迫野外xx | 丁香久久久 | 超碰国产一区二区三区 | 国产精品无码天天爽视频 | 91玉足脚交嫩脚丫在线播放 | 中国亚洲老头同性gay男男… | 三级在线看中文字幕完整版 | 国产又粗又硬又长又爽的演员 | 一区二区三区精品久久久 | 国产一区二区视频免费在线观看 | 农村搞破鞋视频大全 | 天天燥日日燥 | 欧美黑人疯狂性受xxxxx野外 | 久久av片| 欧美男人又粗又长又大 | 美女三级黄色 | 色综合av在线 | 国产中文字字幕乱码无限 | 任你操精品 | 久久精品69| 国产精品88av | 一区二区三区 日韩 | 免费一二区 | 亚洲 国产 欧美 日韩 | 国产精品久久久久久久久久久久久久久久久 | 国产香蕉av| 日韩大尺度在线观看 | 精品一二三区久久aaa片 | 中出 在线| 日韩美女黄色片 | 毛片最新网址 | 国产在线观看免费视频软件 | 成人精品视频一区二区 | 国产网址在线观看 | 四虎影城库 | 成人乱码一区二区三区av | 国产成人免费在线视频 | 日本中文字幕在线观看 | 欧美在线一区二区三区 | 欧美一级电影在线 | 成人黄色网址在线观看 | 日韩免费成人av | 欧美一区二区三区电影 | 亚洲三级在线看 | 国产一区二区三区免费在线观看 | 久久亚洲精精品中文字幕早川悠里 | 成人黄色激情小说 | 调教驯服丰满美艳麻麻在线视频 | 91免费版黄色 | 国产aⅴ精品一区二区果冻 台湾性生生活1 | 欧美一级全黄 | 吃奶摸下的激烈视频 | 成人区精品一区二区婷婷 | 国产精品欧美久久久久天天影视 | 天堂网www在线|