create or replace procedure exp_dist(orgid varchar2,sys_date date)
is
CURSOR C_CURSOR IS
select '03',acct_id,fund_id,dist_type,org_id from dist_reg b where b.org_id=orgid;
RET_CURSOR C_CURSOR%ROWTYPE;
FHANDLE UTL_FILE.FILE_TYPE;begin
FHANDLE := UTL_FILE.FOPEN('d:\temp', 'test.txt', 'a');
UTL_FILE.PUT_LINE(FHANDLE,'03||acct_id||fund_id||dist_type||org_id');
open C_CURSOR;
loop
FETCH C_CURSOR
INTO RET_CURSOR;
EXIT WHEN C_CURSOR%NOTFOUND;
UTL_FILE.PUT(FHANDLE, '03' );
UTL_FILE.PUT(FHANDLE, RET_CURSOR.acct_id );
UTL_FILE.PUT(FHANDLE, RET_CURSOR.fund_id );
UTL_FILE.PUT(FHANDLE, RET_CURSOR.dist_type);
UTL_FILE.PUT(FHANDLE, RET_CURSOR.org_id);
UTL_FILE.PUT_LINE(FHANDLE,'');
END LOOP;
UTL_FILE.FCLOSE(FHANDLE);
CLOSE C_CURSOR;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM );
END;
为了把数据导入到文本,我写了这个存储过程,不用脚本是有原因的,我只好采用这种方法,但是执行到下面就
FHANDLE := UTL_FILE.FOPEN('d:\temp', 'test.txt', 'a');执行到这一步出错,utl_file_dir设置成*了。
然后跳到DBMS_OUTPUT.PUT_LINE(SQLERRM );
请问各位高手有什么指教,错在哪里?谢谢!
is
CURSOR C_CURSOR IS
select '03',acct_id,fund_id,dist_type,org_id from dist_reg b where b.org_id=orgid;
RET_CURSOR C_CURSOR%ROWTYPE;
FHANDLE UTL_FILE.FILE_TYPE;begin
FHANDLE := UTL_FILE.FOPEN('d:\temp', 'test.txt', 'a');
UTL_FILE.PUT_LINE(FHANDLE,'03||acct_id||fund_id||dist_type||org_id');
open C_CURSOR;
loop
FETCH C_CURSOR
INTO RET_CURSOR;
EXIT WHEN C_CURSOR%NOTFOUND;
UTL_FILE.PUT(FHANDLE, '03' );
UTL_FILE.PUT(FHANDLE, RET_CURSOR.acct_id );
UTL_FILE.PUT(FHANDLE, RET_CURSOR.fund_id );
UTL_FILE.PUT(FHANDLE, RET_CURSOR.dist_type);
UTL_FILE.PUT(FHANDLE, RET_CURSOR.org_id);
UTL_FILE.PUT_LINE(FHANDLE,'');
END LOOP;
UTL_FILE.FCLOSE(FHANDLE);
CLOSE C_CURSOR;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM );
END;
为了把数据导入到文本,我写了这个存储过程,不用脚本是有原因的,我只好采用这种方法,但是执行到下面就
FHANDLE := UTL_FILE.FOPEN('d:\temp', 'test.txt', 'a');执行到这一步出错,utl_file_dir设置成*了。
然后跳到DBMS_OUTPUT.PUT_LINE(SQLERRM );
请问各位高手有什么指教,错在哪里?谢谢!
sql>alter system utl_file_dir='d:\temp' scope=spfile;
然后关闭数据库重启使该静态参数生效