oracle 6508,ora4068,6508请大家帮忙分析,无比感谢。

oracle 11g。由以前的9i升级而来。

一直出现4068,6508错误。

4068:

existing stats of packages%s%s%s has benn discarder

Cause? one of errors 4060-4067 when attempt to execute a stored procedure.

Action: Try again after proper re-initiallization of any application's state

6508:

"Pl/SQL: could not find program unit being called%s"

Cause :

Action:

通过各种版本实在是搞不定,肯定大家帮忙.

内容:

系统有个存储过程是发送短信的,其他过程通过该过程将短信内容插入到一个表中tb_sys_sms_send_cur,由另外一个过程定时来扫描该短信表,发送到短信接口,成功后删除该条记录。

系统2个库A,B;B库通过DBLINK插入到该短信表。

以前针对这种错误重复执行一遍就可以了,但是昨晚重复执行4遍还是报错。

下面是代码:

CREATE OR REPLACE PROCEDURE MASASYS.sp_sys_sms_send(is_serv_number in varchar2  , ---号码

is_send_date   in date, ---计划发送时间

is_text        in varchar2, ---短信内容

is_opt_user    in varchar2, ---发送人

is_sms_type    in varchar2, ---短信内容

is_plan_id     in varchar2  , ---活动编码

oi_return_code out integer ---返回代码

) is

vs_username   varchar2(30); --数据库用户登陆名

vs_program    varchar2(48); --过程名

vd_logon_time date; --登陆时间

vs_machine    varchar2(64); --机器名

vs_osuser     varchar2(30); --操作系统用户名

vs_terminal   varchar2(30); --终端机器名

vs_area_code  char(5) default '35';

begin

/*select username,

nvl(program, 'xxx'),

logon_time,

nvl(machine, 'xxx'),

osuser,

terminal

into vs_username,

vs_program,

vd_logon_time,

vs_machine,

vs_osuser,

vs_terminal

from v$session

where sid in (select  distinct sid from v$mystat );*/  最开始以为是动态性能表的问题导致过程失效,所以换成下面的"",但是换过后还是报错,所以肯定不是动态性能表引起的。

select '','','','','',''

into  vs_username,

vs_program,

vd_logon_time,

vs_machine,

vs_osuser,

vs_terminal

from dual ;

insert into [email=masasys.tb_sys_sms_send_cur@SEND_51]masasys.tb_sys_sms_send_cur[/email]

(serv_number,

send_date,

text,

opt_user,

opt_date,

area_code,

sms_type,

plan_id,

osuser,

terminal,

program,

logon_time,

machine,

username)

values

(is_serv_number,

is_send_date,

is_text,

is_opt_user,

sysdate,

vs_area_code,

is_sms_type,

nvl(trim(is_plan_id) ,'systemb'),

vs_osuser,

vs_terminal,

vs_program,

vd_logon_time,

vs_machine,

vs_username);

commit;

oi_return_code := 0;

return;

exception

when others then

oi_return_code := sqlcode;

rollback;

end;

报的错误信息

4068: ORA-04068: 已丢弃程序包  的当前状态

ORA-04065: 未执行, 已变更或删除 stored procedure "MASASYS.SP_SYS_SMS_SEND"

ORA-06508: PL/SQL: 无法找到正在调用 : "MASASYS.SP_SYS_SMS_SEND" 的程序单元

ORA-06512: 在 "MASAMK.SP_DELTENULL_MK_SC_USER_DTAL", line 32

ORA-06512: 在 line 1

调用方式:

masasys.sp_sys_sms_send( '00000000000',

to_date( to_char(sysdate,'yyyymmdd')||'100000','yyyymmdd hh24:mi:ss') ,

'删除为空数据数量:'||to_char(vi_count)||' delete /*+parallel(a,8)*/ from masamk.tb_mk_sc_user_dtal a

where SERV_NUMBER is null and a.statis_date=trunc(sysdate - 1 );',

'liuyi' ,

'1' ,

'system' ,

vi_sms_ret );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值