日期:2014-05-18  浏览次数:20964 次

oracle存储过程日期作为参数的问题
在oracle中定义了一个存储过程,其中有一个参数为date类型,如下
create   or   replace   procedure   charu_lsjl
(
wdid   in   varchar2,
xxxh   in   varchar2,
ygxh   in   varchar2,
wdmj   in   varchar2,
bmqx   in   date       --这个字段在数据库中就是日期类型的
)is
v_exe_query   varchar(1000);
begin
v_exe_query:= 'insert   into   osis_fwcl_b_lsjl   (wdid,xxxh,ygxh,wdmj,bmqx)   values   ( '||wdid|| ', '||xxxh|| ', '||ygxh|| ', '||wdmj|| ', '||bmqx|| ') ';
execute   immediate   v_exe_query;
commit;
end   charu_lsjl;
创建这个存储过程之后,对其进行test,总是在传递bmqx参数处,出问题,请问,对日期类型的参数进行处理是不是有特殊的办法


------解决方案--------------------
create or replace procedure charu_lsjl
(
wdid in varchar2,
xxxh in varchar2,
ygxh in varchar2,
wdmj in varchar2,
bmqx in varchar2--这个字段在数据库中就是日期类型的
)is
v_exe_query varchar(1000);
begin
v_exe_query:= 'insert into osis_fwcl_b_lsjl (wdid,xxxh,ygxh,wdmj,to_date(bmqx, 'yyyy-mm-dd ')) values ( '||wdid|| ', '||xxxh|| ', '||ygxh|| ', '||wdmj|| ', '||bmqx|| ') ';
execute immediate v_exe_query;
commit;
end charu_lsjl;
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html