lonelywolfmoutain
/*

业务需求:

 由于需要些存储过程从另一张表里拿数据,但是对应的金额字段是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;

字符串中包含字母等,无法转化为数字;

分类:

技术点:

相关文章: