×

字符串转数字 oracle

字符串转数字 oracle(ORACLE 将带符号的字符串转为数字)

admin admin 发表于2024-06-12 16:17:07 浏览16 评论0

抢沙发发表评论

本篇文章给大家谈谈字符串转数字 oracle,以及ORACLE 将带符号的字符串转为数字对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

ORACLE 将带符号的字符串转为数字

select abs(to_char(’-123.45’)) from dual

这样?

to_char是把字符转数字

 

abs是算绝对值

Oracle 判断字符串是否能转成数字

1、通过ASCII码判断是否数字,介于之间,(ascii(’0’) = 48, ascii(’9’) = ’57’)2、调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常3、调用translate函数,剔除所有数字后,看是否为空串4、调用正则表达式,进行模式匹配(10g版本新加入的功能)--通过ASCII码判断是否数字,介于之间,(ascii(’0’) = 48, ascii(’9’) = ’57’)DECLAREstr VARCHAR2(10) := ’123a’;val NUMERIC(10);i int;k int;flag BOOLEAN;BEGINflag := TRUE;for i in 1..10 loop --新密码是否6位数字k := ascii(substr(str, i, 1));if k 《 48 or k 》 57 THENflag := FALSE;end if;end LOOP;IF flag = true THENdbms_output.put_line(str || ’是的数字序列’);ELSEdbms_output.put_line(str || ’不是的数字序列’);END IF;END;-- 调用cast函数尝试强制转换成NUMERIC或NUMBER,不是合法数字串即抛异常DECLAREstr VARCHAR2(10) := ’123’;val NUMERIC(10);BEGINval := CAST(str AS NUMERIC);dbms_output.put_line(str || ’是的数字序列’);EXCEPTIONWHEN value_error THEN -- 字符串转实数错误--dbms_output.put_line(SQLCODE || ’, ’ || SQLERRM);dbms_output.put_line(str || ’不是的数字序列’);END;--调用translate函数,剔除所有数字后,看是否为空串DECLAREstr VARCHAR2(10) := ’123abc’;BEGINIF replace(translate(str, ’0123456789’, ’0’), ’0’, ’’) IS NULL THENdbms_output.put_line(str || ’是的数字序列’);ELSEdbms_output.put_line(str || ’不是的数字序列’);END IF;END;--调用正则表达式,进行模式匹配(10g版本新加入的功能)SELECT *FROM dualWHERE regexp_like(’1234’, ’^+$’);--从任意字符串中提取数字串(调用2次translate函数)。--假定初始串为str。首先将str中数字全部替换为空格,输出记为str2;--其次,对每个在str中出现的任意str2串中字符,如果是str2的首字符则替换为空格,其它字符则全部剔除DECLARE--str VARCHAR2(100) := ’ 护照01浙江2 3昆 山4苏 3’;str VARCHAR2(100) := ’ 护照浙江 昆 山苏 4’;ret VARCHAR2(10);BEGINret := TRIM(TRANSLATE(str, trim(TRANSLATE(str, ’1234567890’, ’ ’)), ’ ’));dbms_output.put_line(ret);END;

oracle 将字符型转换为数值型

select to_number(’111’) from dual; --111 select to_number(’111.233’,’FM999990.000’) from dual; --111.233

关于本次字符串转数字 oracle和ORACLE 将带符号的字符串转为数字的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。