Oracle 传动态列名,Oracle:通过存储过程在查询中传递动态字符串(Oracle : passing dynamic string in query through stored proced...

If i am executing below query, it is giving me 4 correct records.

select SUBSCRIBER_NUM, SUBSCRIBER_STATUS, P_ID

from C_S_FORWARD_INFO

where SUBSCRIBER_NUM IN ('0', '07', '070', '0705', '07052', '070526', '0705262', '07052620') and

SCP_VER = 1

But When i execute below, it is giving me 0 records. Actually I have to dynamically pass the value in 'IN' part of the query.

I tried below ( VAR_CALLING_NUM = 07052620):

while var1<=len LOOP

temp1 := SUBSTR(VAR_CALLING_NUM, 1, var1);

temp1 := concat('''',temp1);

temp1 := concat(temp1,'''');

temp6 := temp6 || temp1 || ',' ;

var1:=var1+1;

END LOOP;

temp6 := SUBSTR(temp6, 1,length(temp6)-1);

select SUBSCRIBER_NUM, SUBSCRIBER_STATUS, P_ID from C_S_FORWARD_INFO where SUBSCRIBER_NUM IN ( temp6 ) and SCP_VER = 1 order by length(subscriber_num) desc;

Why this is givign me 0 records. Am i doing anything wrong, by passing temp6 in query like SUBSCRIBER_NUM IN ( temp6 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值