c
摘錄自:
reate 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;
en可以不用在init.ora中改的
只要用管理員的許可權登陸,執行:
create directory utl_file_test as '\*'
應該就可以了,不用新啟動oracle的
不過其他使用者要使用此目錄要授權的
/
grant create any directory to scott;
grant create any library to scott;
create or replace directory utllobdir as 'c:\ep';
在initsid.ora檔案中,加入或修改
設定utl_file_dir的要點:
1。 utl_file_dir=* 這表示你能操作任何目錄,盡量不要用
2。 utl_file_dir=d:\ 這表示你能操作d:\目錄下的檔案,但你不能操作d:\目錄下的子目錄
3。注意在設定
utl_file_dir=路徑時,如果路徑是長路徑名,例如c:\my temp目錄,則你必須加上'',例如:
utl_file_dir='c:\my temp'
4。utl_file_dir可以是多個路徑
utl_file_dir=c:\,d:\,d:\temp,'c:\my temp'
5。設定完必須重新啟動資料庫 d loadfiledata;
Oracle中儲存過程
1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...
Oracle 中儲存過程的建立
在oracle 中用到的視覺化的開發工具是pl sql 其儲存過程也和在sql中的無二。今天也算是複習一下舊知識。是什麼?是乙個 集 也可以理解成是乙個程式塊。它在資料庫中來實現功能。為什麼用?1快 因為資料庫接收到從程式中傳過來的 語句,資料庫還要進行編譯成自己認識的語言 即程式每執行一次就編譯一...
Oracle批量匯出儲存過程
法一 pl sql工具匯出 法二 set echo off set heading off set feedback off spool c documents and settings administrator 桌面 proc.sql 1 用sys使用者等陸的話 select text from...