oracle in長度限制的兩個快速解決方法
發現問題
在oracle中,in的最大條數是1000條,當超過1000條就會報錯:
oracle in長度限制的解決方法,將列轉為行 但是字符串又會有長度限制,所以參考方法二
方法一:
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
這裡還有一個函數:REGEXP_REPLACE
REGEXP_REPLACE(source_char, pattern [, replace_string [, position [, occurrence [, match_parameter ] ] ] ] )
source_char :需要進行處理的字符串
pattern :進行匹配的正則表達式
replace_string :替換的字符
position :從第幾個字符開始正則表達式匹配。(默認為1)
occurrence :標識第幾個匹配組
方法二:
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
總結
到此這篇關於oracle in長度限制的兩個快速解決方法的文章就介紹到這瞭,更多相關oracle in長度限制解決內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Oracle以逗號分隔的字符串拆分為多行數據實例詳解
- Oracle字符串拆分實例詳解
- PostgreSQL 字符串處理與日期處理操作
- Oracle生成隨機數字、字符串、日期、驗證碼及 UUID的方法
- Oracle根據時間查詢的一些常見情況匯總