oracle存储过程无效字符_存储过程总是报错:无效数字,求解答?

过程如下:

create or replace procedure pro_out_sr_pm_day_rep

(

P_f_code   in varchar2,

p_F_Date   in number)

as

v_f_name               varchar(20);

v_sum_fee              number;

v_sum_fee_bh         number;

v_sum_fee_sort_bh         number;

v_tmp number;

type refcur is ref cursor;

v_sort_bh refcur;

begin

select to_number(LASTMON_VAL) into v_tmp from D_DATE_LASTMON where to_char(DATE_VAL) = p_F_Date;

open v_sort_bh for

'select a.f_name,b.sum_fee ,b.sum_fee_sort - a.sum_fee_sort from ACCT_ITEM_count_'||p_F_Date||' a,ACCT_ITEM_count_'||v_tmp||' b where a.f_code = b.f_code and a.f_code='||P_f_code;

loop

fetch v_sort_bh into v_f_name,v_sum_fee,v_sum_fee_sort_bh;

exit when v_sort_bh%NOTFOUND;

dbms_output.put_line(

v_f_name||','||v_sum_fee||','||v_sum_fee_sort_bh    );

end loop;

close v_sort_bh;

end;

/

编译没有问题。

但执行 exec pro_out_sr_pm_day_rep('270-23',20101121)就报错。报错信息为:无效数字。

但是把游标指定的sql改为:'select a.f_name,b.sum_fee ,b.sum_fee_sort - a.sum_fee_sort from ACCT_ITEM_count_'||p_F_Date||' a,ACCT_ITEM_count_'||v_tmp||' b where a.f_code = b.f_code';就能够正确执行,想个半天也不知道参数P_f_code问题在哪里?请教各位!

说明:其实表中p_F_Date,v_tmp传递进来的就是日期参数,两个对比日期;

表ACCT_ITEM_count_20101121 数据类型如下:

desc ACCT_ITEM_count_20101121;

F_CODE                VARCHAR2(15)

F_NAME                VARCHAR2(50)

SUM_FEE                NUMBER(15,2)

SUM_FEE_SORT       NUMBER(2)

QTSJ_FEE                NUMBER(15,2)

QTSJ_FEE_SORT        NUMBER(2)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值