oracle split函數(shù)用法 oracle如何拆分以逗號(hào)分隔的字符串為多列?
oracle如何拆分以逗號(hào)分隔的字符串為多列?在Oracle中,您可以使用connect by根據(jù)所有條件來(lái)劃分字符串:例如,定義字符串:PVuNouList:=“23,34,45,56”選擇不同的R
oracle如何拆分以逗號(hào)分隔的字符串為多列?
在Oracle中,您可以使用connect by根據(jù)所有條件來(lái)劃分字符串:
例如,定義字符串:
PVuNouList:=“23,34,45,56”
選擇不同的REGEXPuSubstr(PVuNouList,“[^,]”,1,LEVEL)作為“token”
FROM DUAL
connect by REGEXPuSubstr(PVuNouList,“[^,]”,1,level)不為空
order by 1
返回結(jié)果:
token
23
34
45
56
您的意思是根據(jù)指定的字符將字符串分成幾個(gè)字符。Oracle不能像Java那樣處理字符串。它不希望根據(jù)指定的字符分割字符串并返回子字符串?dāng)?shù)組。這可以通過(guò)Oracle的常規(guī)匹配功能來(lái)實(shí)現(xiàn)。那是唯一的辦法。
oracle傳過(guò)來(lái)的參數(shù)既有逗號(hào)也有單引號(hào)怎么分割?
如何讓一個(gè)字符串(由多個(gè)小字符串,中間以逗號(hào)分隔開(kāi))轉(zhuǎn)換成stringlist類(lèi)?
1臨時(shí)表2拆分字符串3放入臨時(shí)表采用逗號(hào)順序的PLSQL,因此只能提供一個(gè)想法。如果你懂XML,也許最好先把一個(gè)好的字符串轉(zhuǎn)換成XML,然后再轉(zhuǎn)換成表格
這里有一個(gè)想法:數(shù)字=原始字符串的長(zhǎng)度-刪除后的字符串長(zhǎng)度=長(zhǎng)度(字符串)-長(zhǎng)(替換系統(tǒng)中的(字符串,“a”,”),在用逗號(hào)或其他符號(hào)分隔的字段中存儲(chǔ)多個(gè)信息是經(jīng)常遇到的。例如,保存用戶(hù)的一對(duì)多權(quán)限時(shí),權(quán)限組字段中會(huì)保存多個(gè)權(quán)限號(hào),用逗號(hào)分隔。
現(xiàn)在,如果您提供一個(gè)權(quán)限號(hào)并希望檢索所用權(quán)限的用戶(hù)集,則需要在多個(gè)由逗號(hào)分隔的權(quán)限號(hào)中匹配給定的權(quán)限號(hào)。如果你用like來(lái)做,它將是低效和不準(zhǔn)確的。因此,我們使用逗號(hào)分隔列。目前,這種方法只適用于Oracle數(shù)據(jù)庫(kù)。這種方法只需要SQL語(yǔ)句就可以實(shí)現(xiàn)列到行的轉(zhuǎn)換。