参考:
先修改或添加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;
/
oracle 8.1.5中测试通过
先修改或添加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;
/
oracle 8.1.5中测试通过
解决方案 »
- 建job时报错 ORA-01008 并非所有变量都已绑定
- 语法检查
- 如果通过一个键盘来控制机房里的两台服务器?切换键是什么?
- 如何快速复制一个blob字段内容
- 一个关于EXP导出数据的问题??????
- 关于存储过程动态执行语句返回结果集!
- 主键ID自增但是要和系统日期组合插入值,求解!!??
- Oracle8.1.7personal可以当client联结网络(Internet)上的Oracle数据库服务器吗?
- oracle9i在solaris8系统上安装出错信息如内示!怎么解决!急!在线等待ing....
- 关于查询语句排序的问题
- 急死我了
- 新建一个用户,怎么才能够能够让他有权限登陆(我的可用分只有十分了,不好意思)
utl_file_dir=d:\CREATE OR REPLACE FUNCTION WCLIENT.Logfile_write (
/*共通部品:logファイル出力(logファイル未存在時はcreate、存在時は既存の内容に追記する)
ファイル名 d:\データ移行処理結果.log
(処理: 開始終了: 終了: 正常更新件数,エラー件数)
例:“顧客マスタ” ,start_time, end_date,count_ok, count_ng
*/
C_ERRTBL VARCHAR2,
-- C_ERRTBL date,
-- C_ERRNUM date,
-- C_ERRMES NUMBER,
C_ERRKEY NUMBER
) RETURN NUMBER
IS
file_handle UTL_FILE.FILE_TYPE;
begin
file_handle := UTL_FILE.FOPEN('D:\', sysdate||'.txt', 'a'); UTL_FILE.PUTF(file_handle, C_ERRTBL||' ' || '\n');-- UTL_FILE.Put_Line(file_handle,C_ERRPRC); UTL_FILE.FCLOSE(file_handle);
-- WHEN utl_file.invalid_path THEN--SHOW ERRORS FUNCTION B_TRANS_KANA_FUNC
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20000, 'ERROR: Invalid path for file or path not in INIT.ORA.');END;
/