写入文件的例子 先修改或添加init.ora的UTL_FILE_DIR参数 例如: utl_file_dir=G:\oracle\temp //保存文本的路径为G:\oracle\temp 此过程将用户FILE_OWNER的过程FILE_NAME的代码保存到G:\oracle\temp\TEXT.TXT中 create or replace procedure PRO_TO_TXT(FILE_OWNER VARCHAR2,FILE_NAME VARCHAR2) is file_handle utl_file.file_type; STOR_TEXT VARCHAR2(4000); N NUMBER; I NUMBER; begin I:=1; SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER=FILE_OWNER AND NAME=FILE_NAME AND TYPE='PROCEDURE'; file_handle:=utl_file.fopen('G:\oracle\temp','test.txt','a'); utl_file.put_line(file_handle,'PROCEDURE NAME:'||FILE_NAME); WHILE I<=N LOOP SELECT TEXT INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER=FILE_OWNER AND NAME=FILE_NAME AND TYPE='PROCEDURE' AND LINE= I; I:=I+1; utl_file.put_line(file_handle,stor_text); END LOOP; utl_file.fclose(file_handle); commit; end PRO_TO_TXT; /看一下utl_file包的使用说明
sql lorder 导入没有办法在程序中执行。
先修改或添加init.ora的UTL_FILE_DIR参数
例如:
utl_file_dir=G:\oracle\temp //保存文本的路径为G:\oracle\temp
此过程将用户FILE_OWNER的过程FILE_NAME的代码保存到G:\oracle\temp\TEXT.TXT中
create or replace procedure PRO_TO_TXT(FILE_OWNER VARCHAR2,FILE_NAME VARCHAR2)
is
file_handle utl_file.file_type;
STOR_TEXT VARCHAR2(4000);
N NUMBER;
I NUMBER;
begin
I:=1;
SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER=FILE_OWNER AND NAME=FILE_NAME AND TYPE='PROCEDURE';
file_handle:=utl_file.fopen('G:\oracle\temp','test.txt','a');
utl_file.put_line(file_handle,'PROCEDURE NAME:'||FILE_NAME);
WHILE I<=N LOOP
SELECT TEXT INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER=FILE_OWNER
AND NAME=FILE_NAME AND TYPE='PROCEDURE' AND LINE= I;
I:=I+1;
utl_file.put_line(file_handle,stor_text);
END LOOP;
utl_file.fclose(file_handle);
commit;
end PRO_TO_TXT;
/看一下utl_file包的使用说明
使用tab分隔。
恕我愚笨。
读取一行
然后根据tab符将字符串分割(用到这两个函数substr(),instr())
插入到表中具体的看utl_file包吧
2.定义数据文件,内容如:data.txt(也就是你的那个数据文件)
3.使用命令行 sqlldr 用户/口令@服务名 d:\ora\ctr.txt d:\ora\mm.log d:\ora\data.txt即可完成将数据文件中的数据装载到控制文件中所说的数据库表中!其中的:控制文件格式为:LOAD DATA
INFILE 'd:\ora\data.TXT'
APPEND
INTO TABLE aaa (这个是表的名称)
fields terminated by whitespace
(aa , 这些是字段
bb , 这些是字段
cc ) 这些是字段