动态油标数据获取以及遍历

declare V_STR VARCHAR2(4000):=26,28,29,85;
V_SQL VARCHAR2(4000);
V_DMSM VARCHAR2(4000);
V_NUM_I NUMBER:=0;
TYPE CUR_TYPE IS REF CURSOR;  
 CUR CUR_TYPE; 
REC UD_USER%ROWTYPE;  
BEGIN
  WHILE TRUE LOOP
    V_NUM_I :=INSTR(V_STR,',');
    
    IF (V_NUM_I<=0 ) OR V_NUM_I IS NULL THEN
       IF V_STR IS NOT NULL THEN
            V_SQL:=V_SQL||','''||V_STR||'''';
       END IF;
       EXIT;
    ELSIF V_NUM_I=1 THEN
       V_NUM_I :=1;
    ELSE 
      V_SQL:=V_SQL||','''||SUBSTR(V_STR,1,V_NUM_I-1)||'''';
      IF V_NUM_I=LENGTH(V_STR) THEN
          EXIT;
       END IF;     
    END IF;
    V_STR :=SUBSTR(V_STR,V_NUM_I+1);   
  END LOOP; 
 
  
 
  IF V_SQL IS NOT NULL  THEN
    V_SQL:=SUBSTR(V_SQL,2);
         OPEN CUR FOR 'SELECT A.XM FROM  UD_USER A WHERE A.YHZH IN ('||V_SQL||')';  
         LOOP  
           FETCH CUR INTO REC.XM;  
           EXIT WHEN CUR%NOTFOUND;  
           V_DMSM:=V_DMSM||','||REC.XM;
        END LOOP;  
  END IF;
  dbms_output.put_line(V_DMSM);
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值