發(fā)現(xiàn)問(wèn)題
在oracle中,in的最大條數(shù)是1000條,當(dāng)超過(guò)1000條就會(huì)報(bào)錯(cuò):
oracle in長(zhǎng)度限制的解決方法,將列轉(zhuǎn)為行 但是字符串又會(huì)有長(zhǎng)度限制,所以參考方法二
方法一:
SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,LEVEL) AS STR FROM DUAL CONNECT BY LEVEL = LENGTH('17,20,23')-LENGTH(REGEXP_REPLACE('17,20,23',',','')) + 1
這里還有一個(gè)函數(shù):REGEXP_REPLACE
REGEXP_REPLACE(source_char, pattern [, replace_string [, position [, occurrence [, match_parameter ] ] ] ] )
source_char :需要進(jìn)行處理的字符串
pattern :進(jìn)行匹配的正則表達(dá)式
replace_string :替換的字符
position :從第幾個(gè)字符開(kāi)始正則表達(dá)式匹配。(默認(rèn)為1)
occurrence :標(biāo)識(shí)第幾個(gè)匹配組
方法二:
SELECT regexp_replace(Supplier, '[^0-9]') cc FROM (select '1' a1, '2' a2, '3' a3 from dual) T UNPIVOT(org_id FOR Supplier IN(a1,a2,a3)) P
總結(jié)
到此這篇關(guān)于oracle in長(zhǎng)度限制的兩個(gè)快速解決方法的文章就介紹到這了,更多相關(guān)oracle in長(zhǎng)度限制解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!