首先,字符串必须是数字形式的字符串,如“12345”或“-12345”等。
然后需要用to_number函数进行转换。
如:
1
select to_number('12345') from dual;
这样就将字符转成了数字,并可以参与加减乘除的运算。
这个你估计得自定义函数了,不能直接用to_number
创建函数
1
2
3
4
5
6
7
8
9
10
create or replace function isNumber(p in varchar2)
return number
is
test number;
begin
test := to_number(p);
return test;
exception
when VALUE_ERROR then return 0;
end;
测试1,纯数字
测试2 带非数字的字符
测试3,负数
测试4 小数
测试5 0
总之就是测试5和测试2的结果是一样,这个你看你打算怎么解决吧
拓展资料
有没有小数点?
如果有小数点的话
SELECT trunc(to_number('1234,56897'),2) from dual
如果全是整的话,那么就是
select to_number('1234,56897'),2) from dual