1. 程式人生 > 資料庫 >oracle in長度限制的兩個快速解決方法

oracle in長度限制的兩個快速解決方法

發現問題

在oracle中,in的最大條數是1000條,當超過1000條就會報錯:

oracle in長度限制的兩個快速解決方法

oracle in長度限制的解決方法,將列轉為行 但是字串又會有長度限制,所以參考方法二

方法一:

SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,LEVEL) AS STR FROM DUAL CONNECT BY LEVEL <= LENGTH('17,23')-LENGTH(REGEXP_REPLACE('17,','')) + 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長度限制解決內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!