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