日期:2014-05-16  浏览次数:20801 次

存储过程 字符转数字出错,请高手指教
create or replace procedure MISAPP_GJCK_RJ(

WORKMON_IN_B IN NUMBER, ----起始日期
WORKMON_IN_E IN NUMBER, ----截止日期
hkd IN NUMBER, ----
eur IN NUMBER, ----
cad IN NUMBER ----

) is

v_day number;

begin

v_day := 'select to_date(WORKMON_IN_E,''yyyymmdd'')-to_date(WORKMON_IN_B,''yyyymmdd'')+1 from dual';


执行的时候,最后一行v_day:= 赋值这一行报错ORA=06502 PL/SQL:数字或值错误,字符转到数值的转换错误。

v_day 我设的是number型,赋值那个语句得到的是字符型吗?
如果我改成
v_day :=to_number( 'select to_date(WORKMON_IN_E,''yyyymmdd'')-to_date(WORKMON_IN_B,''yyyymmdd'')+1 from dual');
也一样报错ORA=06502 PL/SQL:数字或值错误,字符转到数值的转换错误。

请高手指教。

------解决方案--------------------
SQL code
select to_date(to_char(WORKMON_IN_E),'yyyymmdd')-to_date(to_char(WORKMON_IN_B),'yyyymmdd')+1 into v_day from dual;