以下のクエリを実行している場合、4つの正しいレコードが表示されます。Oracle:ストアドプロシージャを使用して動的文字列をクエリに渡す
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
しかし、私が以下で実行すると、私には0レコードが与えられます。実際には、クエリの 'IN'部分に値を動的に渡す必要があります。
私は(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;
これは私に0レコードをgivignされるのはなぜ。私は間違ったことをしていますか?SUBSCRIBER_NUM IN (temp6)
ループ・コードがあるため、PL/SQLです。 PL/SQLでは、選択するだけでなく、変数を選択することもできます。 PL/SQLで何をしたいのですか? – Kacper