游标中使用变量出现错误,一个存储过程中调用另外一个存储过程,其中传递参数,这个参数用在 定义游标中,出现错误。
A存储过程:
temp_tdj := ' and ckcode=''HN'' and bf=''Y'' ';
temp_count:=2;
P_AUTO_TDJ(temp_tdj,temp_count);
B存储过程:
CREATE OR REPLACE PROCEDURE P_AUTO_TDJ
( v_ckcode varchar2, v_count number) as
CURSOR GET_CK_BJ IS
SELECT code,ckcode,ddh,sl,dj,un,netid,netcode,bhdh,qjsl,shtime,netname,ysfs
FROM ps_auto_id WHERE qjsl > 0 || v_ckcode;
.....................
v_ckcode 穿过来值是:and ckcode='HN' and bf='Y'
是不是 || 用的不对?
------解决方法--------------------------------------------------------
像这样需要拼接的sql语句,是不能用静态游标的。
用动态的
------解决方法--------------------------------------------------------
参数传递没问题,但静态游标不能有动态的条件,必须用动态游标。