/*
业务需求:
由于需要些存储过程从另一张表里拿数据,但是对应的金额字段是varchar2并且带了货币单位,
现在的表是number类型,下面的字符串截取就派上用场了.
*/
DECLARE
str VARCHAR(100):= '1234.5元';
str2 VARCHAR2(100);
num1 NUMBER(10,2);
BEGIN
--substr(要截取的字符串,开始位置,截取的长度)
str2 := to_char(SUBSTR(str,1,LENGTH(str)-1));
dbms_output.put_line(str2);
--截取的前面部分不能包含非数字字符,否则出现错误
--to_number() 可以省略
num1 := to_number(SUBSTR(str,1,LENGTH(str)-1));
dbms_output.put_line('截取的数字为'||num1);
END;
字符串中包含字母等,无法转化为数字;

来源:https://www.cnblogs.com/lonelywolfmoutain/p/4241201.html