今天寫奈及利亞boss,資料修復指令碼時遇到乙個問題, 引數字串無法再in中使用,例如:想要完成下面的查詢
select * from customeren c where c.customercodestr in (&code);
最先想到的是用regexp_replace來拼接字串,將中間符號替換成『,』 以便後續拼接
select '''' || regexp_replace('ttp0001;ttp0002;ttp0003', ';', ''',''') || '''' from dual;
測試了下結果很滿意: 'ttp0001','ttp0002','ttp0003'
可是執行時,卻還是不行查詢不到任何結果,
select *
from customeren c
where c.customercodestr in
(select '''' || regexp_replace('ttp0001;ttp0002;ttp0003',
';',
''',''') || ''''
from dual)
猜測主要原因是, in 後面的括號內,不能用字串拼接,括號內並不是乙個字串
最後通過字串擷取拼接實現: 示列sql 如下
select *
from customeren c
where c.customercodestr in
(select regexp_substr('&客戶編碼', '[^;]+', 1, rownum)
from dual
connect by rownum <=
length('&客戶編碼') - length(replace('&客戶編碼', ';', '')) + 1)
ORACLE in 字串,字串,字串
因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...
Oracle IN 傳遞字串引數查詢失效
在寫儲存過程中有如下 for a in select a.svo no,a.audit no,a.order id from tt pi model rel a loop select count 1 into v flag from tt pi order where pi id in a.ord...
數字轉字串 字串轉數字
數字轉字串 這裡首先用到乙個陣列逆置函式如下 void reverse char arr 逆置 for p arr p arr p 將arr陣列逆置 因為將乙個數字轉成字串,若果是從右往左依次獲得,操作較容易,所以以此得到的字串是數字的逆序字串,所以要逆置,才可得到順序 如下 void myitoa...