BEGIN
FOR i IN (SELECT T.MOBILE MOBILE from T_EXCEPTION_USER T WHERE T.FID IN(i_Reciver) AND ROWID IN(SELECT MAX(ROWID) FROM T_EXCEPTION_USER D WHERE T.USERNAEM=D.USERNAEM))
LOOP
dbms_output.put_line(i.MOBILE);
/*[email protected](i_SmsSub,i.MOBILE,i_SmsTxt);*/
END LOOP;
END; 其中i_Reciver是一个变量,这样写不可以,有什么办法吗,i_Reciver 例如221,111,111
用动态sql还是什么
FOR i IN (SELECT T.MOBILE MOBILE from T_EXCEPTION_USER T WHERE T.FID IN(i_Reciver) AND ROWID IN(SELECT MAX(ROWID) FROM T_EXCEPTION_USER D WHERE T.USERNAEM=D.USERNAEM))
LOOP
dbms_output.put_line(i.MOBILE);
/*[email protected](i_SmsSub,i.MOBILE,i_SmsTxt);*/
END LOOP;
END; 其中i_Reciver是一个变量,这样写不可以,有什么办法吗,i_Reciver 例如221,111,111
用动态sql还是什么
在定义一变量来存值
for i in 1...变量 LOOP
END LOOP
TYPE X IS TABLE OF VARCHAR2(11);
V_X X;
I_RECIVER VARCHAR2(2000) DEFAULT '1,2,3';
BEGIN
EXECUTE IMMEDIATE 'SELECT T.MOBILE MOBILE
FROM T_EXCEPTION_USER T
WHERE T.FID IN (' || I_RECIVER || ')
AND ROWID IN (SELECT MAX(ROWID)
FROM T_EXCEPTION_USER D
WHERE T.USERNAEM = D.USERNAEM)' BULK
COLLECT
INTO V_X
USING I_RECIVER; FOR I IN V_X.FIRST .. V_X.LAST LOOP
DBMS_OUTPUT.PUT_LINE(V_X(I) || '=' || I);
/*[email protected](i_SmsSub,i.MOBILE,i_SmsTxt);*/
END LOOP;
END;