设置路径:create or replace directory dir_log as 'f:\log';
包程序如下:
create or replace package body LN_ASP_STAT_COMMON
as
para_date1 varchar2(8);
procedure START_STAT(parameter_date in varchar2 default null)
as
para_num number;
para_num1 number;
para_curr_time varchar2(10);
para_reco_num number;
para_last_date varchar2(10);
para_start_date varchar2(10);
OutputFile UTL_FILE.FILE_TYPE; --日志输出文件对象
para_coustomer_no varchar2(255);
para_city varchar2(255);
para_gonghao varchar2(20);
para_cityname varchar2(255);
para_last_name varchar2(255);
begin
if parameter_date is null then
para_date1:=to_char(sysdate-1,'yyyymmdd');
else
para_date1:=parameter_date;
end if;
para_last_date := '20070202';
para_start_date:=0;
--生成日志文件。保存在“/export/home3/pin/payment/log”目录下,文件名“balancelog_yyyymm.txt”
--DBMS_OUTPUT.PUT_LINE ('d://','balanceAPlog_'||para_date1||'.txt');
--DBMS_OUTPUT.PUT_LINE ('d:\','balanceAPlog_');
--OutputFile := UTL_FILE.FOPEN('FILEPATH','balanceAPlog_'||para_date1||'.txt','a');
OutputFile := UTL_FILE.FOPEN('dir_log','1.txt','a');
UTL_FILE.PUTF(OutputFile,'%s %s %s\n','DATE','REMARK','LOG'); --写入文件,但内容保存在缓存中
UTL_FILE.FFLUSH(OutputFile); --直接从缓存中写入文件
DBMS_OUTPUT.PUT_LINE (para_date1);
DBMS_OUTPUT.PUT_LINE (para_last_date);
while para_date1<para_last_date LOOP
DBMS_OUTPUT.PUT_LINE (para_date1);
LN_ASP_STAT_CITYDEVELOP.START_STAT_CITYDEVELOP(para_date1);
para_date1 := para_date1 + 1;
--输出操作到日志文件
UTL_FILE.PUTF(OutputFile,'%s %s %s\n',to_char(sysdate,'yyyymmdd hh24:mi:ss'),0,'##BEGIN to run balance_AP for '||para_date1);
UTL_FILE.FFLUSH(OutputFile);
<<Part1>>
null;
END LOOP;
--输出操作到日志文件,并关闭文件。
UTL_FILE.PUTF(OutputFile,'%s %s %s\n',to_char(sysdate,'yyyymmdd hh24:mi:ss'),0,'##END to run balance_AP for '||para_date1);
UTL_FILE.FFLUSH(OutputFile);
UTL_FILE.fclose(OutputFile); end START_STAT;end LN_ASP_STAT_COMMON;
/
show errors;错误码如下
*
第 1 行出现错误:
ORA-29280: 目录路径无效
ORA-06512: 在 "SYS.UTL_FILE", line 33
ORA-06512: 在 "SYS.UTL_FILE", line 436
ORA-06512: 在 "ASP62.LN_ASP_STAT_COMMON", line 38
ORA-06512: 在 line 1请各位大侠看看什么地方有错误?多谢!
包程序如下:
create or replace package body LN_ASP_STAT_COMMON
as
para_date1 varchar2(8);
procedure START_STAT(parameter_date in varchar2 default null)
as
para_num number;
para_num1 number;
para_curr_time varchar2(10);
para_reco_num number;
para_last_date varchar2(10);
para_start_date varchar2(10);
OutputFile UTL_FILE.FILE_TYPE; --日志输出文件对象
para_coustomer_no varchar2(255);
para_city varchar2(255);
para_gonghao varchar2(20);
para_cityname varchar2(255);
para_last_name varchar2(255);
begin
if parameter_date is null then
para_date1:=to_char(sysdate-1,'yyyymmdd');
else
para_date1:=parameter_date;
end if;
para_last_date := '20070202';
para_start_date:=0;
--生成日志文件。保存在“/export/home3/pin/payment/log”目录下,文件名“balancelog_yyyymm.txt”
--DBMS_OUTPUT.PUT_LINE ('d://','balanceAPlog_'||para_date1||'.txt');
--DBMS_OUTPUT.PUT_LINE ('d:\','balanceAPlog_');
--OutputFile := UTL_FILE.FOPEN('FILEPATH','balanceAPlog_'||para_date1||'.txt','a');
OutputFile := UTL_FILE.FOPEN('dir_log','1.txt','a');
UTL_FILE.PUTF(OutputFile,'%s %s %s\n','DATE','REMARK','LOG'); --写入文件,但内容保存在缓存中
UTL_FILE.FFLUSH(OutputFile); --直接从缓存中写入文件
DBMS_OUTPUT.PUT_LINE (para_date1);
DBMS_OUTPUT.PUT_LINE (para_last_date);
while para_date1<para_last_date LOOP
DBMS_OUTPUT.PUT_LINE (para_date1);
LN_ASP_STAT_CITYDEVELOP.START_STAT_CITYDEVELOP(para_date1);
para_date1 := para_date1 + 1;
--输出操作到日志文件
UTL_FILE.PUTF(OutputFile,'%s %s %s\n',to_char(sysdate,'yyyymmdd hh24:mi:ss'),0,'##BEGIN to run balance_AP for '||para_date1);
UTL_FILE.FFLUSH(OutputFile);
<<Part1>>
null;
END LOOP;
--输出操作到日志文件,并关闭文件。
UTL_FILE.PUTF(OutputFile,'%s %s %s\n',to_char(sysdate,'yyyymmdd hh24:mi:ss'),0,'##END to run balance_AP for '||para_date1);
UTL_FILE.FFLUSH(OutputFile);
UTL_FILE.fclose(OutputFile); end START_STAT;end LN_ASP_STAT_COMMON;
/
show errors;错误码如下
*
第 1 行出现错误:
ORA-29280: 目录路径无效
ORA-06512: 在 "SYS.UTL_FILE", line 33
ORA-06512: 在 "SYS.UTL_FILE", line 436
ORA-06512: 在 "ASP62.LN_ASP_STAT_COMMON", line 38
ORA-06512: 在 line 1请各位大侠看看什么地方有错误?多谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货