1
A
回答
0
我想你必須寫一個PL/SQL函數的奢侈品?然後,只需使用"SUBSTR"和/或"INSTR"和||
concatenation operator來解析您的輸入。
下面是一個例子:
https://www.techonthenet.com/oracle/questions/parse.php
...該字段可能包含以下值:
F:\Siebfile\YD\S_SR_ATT_1-60SS_1-AM3L.SAF
在這種情況下,我需要返回的「價值1-60SS',因爲這是位於第3和第4下劃線之間的值。
SOLUTION:
create or replace function parse_value (pValue varchar2)
return varchar2
is
v_pos3 number;
v_pos4 number;
begin
/* Return 3rd occurrence of '_' */
v_pos3 := INSTR (pValue, '_', 1, 3) + 1;
/* Return 4rd occurrence of '_' */
v_pos4 := INSTR (pValue, '_', 1, 4);
return SUBSTR (pValue, v_pos3, v_pos4 - v_pos3);
end parse_value;
+4
爲什麼需要編寫一個PL/SQL函數來使用SUBSTR和INSTR? – mathguy
0
好吧,我會咬。這個例子使用REGEXP_REPLACE來描述字符串,保存你需要的部分,以便在返回之前重新排列它們。如果你展示了一些你正在處理的數據的真實世界的例子,那將會更好,因爲我只能保證這個例子可以與你提供的那一行一起工作。
正則表達式匹配從字符串開頭開始並以結束空間結束的任何字符。下一組任何字符直到但不包括逗號空間都是通過將它們包含在parens中來「記住」的。這被稱爲捕獲組。下一個捕獲的組是該逗號空間分隔符後面的字符集,直到該行的結尾(美元符號)。捕獲的組按照從左至右的順序引用。第三個參數是要返回的字符串,這是第二個和第一個捕獲的組,按順序由空格分隔。
SQL> with tbl(str) as (
select '+011113584378(+) CARD, STAFF' from dual
)
select regexp_replace(str, '^.*\) (.*), (.*)$', '\2 \1') formatted
from tbl;
FORMATTED
----------
STAFF CARD
SQL>
相關問題
- 1. Oracle:從字符串中提取數字
- 2. 如何在python中提取字符串中的字符串?
- 3. 如何在ColdFusion中從字符串中提取子字符串?
- 4. 如何在Python中提取字符串
- 5. 如何在csh中提取字符串?
- 6. 如何使用Oracle 10g REGEXP_SUBSTR使用字符串分隔符提取字符串
- 7. Oracle從字符串中提取字母字符
- 8. 如何在C#中提取字符串一個字符串的
- 9. 如何提取字符串
- 10. 如何提取字符串
- 11. 如何提取字符串?
- 12. 從大字符串提取字符串oracle正則表達式
- 13. 如何從oracle中的字符串中獲取4個字符?
- 14. 如何從Python中的字符串中提取子字符串?
- 15. 如何從java中的字符串中提取子字符串
- 16. 如何從C++中的字符串中提取子字符串?
- 17. 如何從Perl中的字符串中提取子字符串?
- 18. 如何在字符串中提取三個數字字符?
- 19. 從字符串中提取字符串
- 20. 如何從字符串中提取值
- 21. 如何從字符串中提取?
- 22. 如何從字符串中提取值
- 23. 如何從字符串中提取值
- 24. 如何在Oracle中編碼字符串?
- 25. Oracle字符串文字太長 - 字符串中的數據提取
- 26. 如何從Oracle中的字符串獲取唯一字符?
- 27. 我如何提取字符串中的字符串'myUIBean「com.test.pkg1.myUIBean.getName」
- 28. 如何從字符串中提取字符串?
- 29. 如何從字符串中提取一個字符串
- 30. 如何從這個字符串中提取子字符串?
什麼是從輸入到輸出的邏輯?格式將始終爲 SPACE <字母順序> COMMA SPACE <字母順序>?字母序列總是非空的?他們只是字母,還是可以包含DASH( - )或UNDERSCORE(_)或數字?在我們考慮任何類型的代碼之前,請先澄清一下邏輯。 –
mathguy