oracle存储过程日期作为参数的问题

时间:2021-08-24 14:06:31
在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参数处,出问题,请问,对日期类型的参数进行处理是不是有特殊的办法

6 个解决方案

#1


试试变量绑定

#2


不知道具体什么错误

#3


传的参数必须是日期型,用sysdate或者to_date('20070101','yyyymmdd')之类应该可以

#4


每天十分,今天差点忘了。

#5


唉,怎么没人回答就结贴了?我也碰到这问题了。

#6


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   (:v1,:v2,:v3,:v4,:v5)'; 
execute   immediate   v_exe_query USING wdid,xxxh,ygxh,wdmj,bmqx;
commit; 
end   charu_lsjl

类似这样

#1


试试变量绑定

#2


不知道具体什么错误

#3


传的参数必须是日期型,用sysdate或者to_date('20070101','yyyymmdd')之类应该可以

#4


每天十分,今天差点忘了。

#5


唉,怎么没人回答就结贴了?我也碰到这问题了。

#6


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   (:v1,:v2,:v3,:v4,:v5)'; 
execute   immediate   v_exe_query USING wdid,xxxh,ygxh,wdmj,bmqx;
commit; 
end   charu_lsjl

类似这样