oracle 字符串截取substr

/*

业务需求:

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

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

posted @ 2015-01-22 11:28  snow__wolf  阅读(410)  评论(0)    收藏  举报