如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理。\x0d\x0a\x0d\x0a5个参数\x0d\x0a第一个是输入的字符串\x0d\x0a第二个是正则表达式\x0d\x0a第三个是标识从第几个字符开始正则表达式匹配。(默认为1)\x0d\x0a第四个是标识第几个匹配组。(默认为1)\x0d\x0a第五个是是取值范围:\x0d\x0ai:大小写不敏感;\x0d\x0ac:大小写敏感;\x0d\x0an:点号 . 不匹配换行符号;\x0d\x0am:多行模式;\x0d\x0ax:扩展模式,忽略正则表达式中的空白字符。\x0d\x0a\x0d\x0aSQL> SELECT\x0d\x0a 2 REGEXP_SUBSTR(a,'[0-9]+')\x0d\x0a 3 FROM\x0d\x0a 4 test_reg_substr\x0d\x0a 5 WHERE\x0d\x0a 6 REGEXP_LIKE(a, '[0-9]+');
取子串:SUBSTR(字符串,开始位置,长度)类型转换(字符串 -> 数值):TO_NUMBER(字符串)如str := "I am 20 years.";newStr := SUBSTR(str, 5, 2);\age = TO_NUMBER(newStr);其中newStr的数据类型为VARCHAR2,age的数据类型为NUMBER。
如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理。5个参数第一个是输入的字符串第二个是正则表达式第三个是标识从第几个字符开始正则表达式匹配。(默认为1)第四个是标识第几个匹配组。(默认为1)第五个是是取值范围:i:大小写不敏感;c:大小写敏感;n:点号 . 不匹配换行符号;m:多行模式;x:扩展模式,忽略正则表达式中的空白字符。SQL> SELECT 2 REGEXP_SUBSTR(a,'[0-9]+') 3 FROM 4 test_reg_substr 5 WHERE 6 REGEXP_LIKE(a, '[0-9]+');