在Oracle pl / sql中,如何仅从字符串中检索数字。
e.g。 123abc - > 123(删除字母)
e.g。 123 * - * abc - > 123(删除所有特殊字符)
答案 0 :(得分:2)
your_string := regexp_replace(your_string, '\D')
答案 1 :(得分:1)
有几种选择,但这应该有效:
select regexp_replace('123*-*abc', '[^[:digit:]]', '') from dual
这将删除输入中的所有非数字。
如果在pl / sql中使用,则可以对变量进行赋值:
declare
l_num number;
l_string varchar2(20) := '123*-*abc';
begin
l_num := regexp_replace(l_string, '[^[:digit:]]', '');
dbms_output.put_line('Num is: ' || l_num);
end;
输出:
Num is: 123
答案 2 :(得分:0)
试试这个:
select regexp_replace(value, '[A-Za-z]') from dual;