2014-06-05 25 views
0

我有一個名爲TP_GEO_ASSN的表,字段爲ID,GEO_DETAILS。字段的值在下面給出oracle存儲過程中的字符串提取

ID GEO_DETAILS

1 INDIA |卡納塔卡| BANGALORE | RELIANCE SUPER MARKET

2印度| KERALA | CALICUT | EXPRESS SUPER MARKET

3印度|西孟加拉| KOLKATA |更多超市

。 。

。 。

。 。

我的問題是我需要編寫一個過程,它將GEO_DETAILS值提取到字符串變量中。
我需要提取管道符號(|)之間的值,例如

INDIA |卡納塔卡| BANGALORE | RELIANCE超市

我需要提取INDIA,KARNATAKA,班加羅爾,RELIANCE超級市場和
我需要從存儲過程示例INDIA在一個可變分別通過這些值,KARNATAKA在另一個變量等
如何我這樣做?
在此先感謝。

回答

0

申報4個變量,使用下面的查詢來存儲這些變量

select trim(REGEXP_SUBSTR(YOUR_COL_NAME, '[^|]+', 1, 1)), 
     trim(REGEXP_SUBSTR(YOUR_COL_NAME, '[^|]+', 1, 2)), 
     trim(REGEXP_SUBSTR(YOUR_COL_NAME, '[^|]+', 1, 3)), 
     trim(REGEXP_SUBSTR(YOUR_COL_NAME, '[^|]+', 1, 4)) into var1, var2, var3, var4 from <YOUR_TABLE_NAME>; 

VAR1將包含印度,VAR2將包含KARNATAKA等..然後將變量傳遞到你的程序中根據自己的需要。