Oracle 把秒转成时分秒格式(hh24:mm:ss);检测字符串是否是数字;字符串转换为数字
2015-09-16 17:45
639 查看
不说废话,贴代码:
转换为数字:
如果要转换字母加数字的,得到数字, 那就得先用正则表达式过滤了: REGEXP_SUBSTR, REGEXP_REPLACE
CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS /*把秒转成时分秒格式 auth lzpong 201/09/16 */ BEGIN RETURN TRUNC(NVL(sec,0)/3600)||':'||SUBSTR(NUMTODSINTERVAL(NVL(sec,0), 'second'),15,5); EXCEPTION WHEN OTHERS THEN RETURN '0:00:00'; END to_time; CREATE OR REPLACE FUNCTION isnumeric(str IN VARCHAR2) RETURN NUMBER IS /*检测字符串是否是数字 null:-1; notnumeric:0; isnumeric:1 */ v_str FLOAT; BEGIN IF str IS NULL THEN RETURN -1; ELSE BEGIN SELECT TO_NUMBER (str) INTO v_str FROM DUAL; EXCEPTION WHEN INVALID_NUMBER THEN RETURN 0; END; RETURN 1; END IF; END isnumeric;
转换为数字:
如果要转换字母加数字的,得到数字, 那就得先用正则表达式过滤了: REGEXP_SUBSTR, REGEXP_REPLACE
CREATE OR REPLACE FUNCTION TO_NUM(str IN VARCHAR2) RETURN NUMBER IS --将字符串转成数字 --lzpong 2015/09/16 BEGIN IF(str IS NULL)THEN RETURN 0; ELSE RETURN TO_NUMBER(str); END IF; EXCEPTION WHEN OTHERS THEN RETURN 0; END;
CREATE OR REPLACE FUNCTION TO_NUM(str IN VARCHAR2) RETURN NUMBER IS str2 varchar2(160); --将字符串(提取数字)转成数字 --lzpong 2015/09/16 BEGIN str2:=REGEXP_SUBSTR(str,'[[:digit:]]{1,100}\.?[[:digit:]]{0,10}'); IF(str2 IS NULL)THEN RETURN 0; ELSE RETURN TO_NUMBER(str2); END IF; EXCEPTION WHEN OTHERS THEN RETURN 0; END;
相关文章推荐
- 一个非常标准的Java连接Oracle数据库的示例代码
- Oracle数据库SQL语句大全
- oracle数据导入导出表等系列操作总结
- ORACLE自定义函数——10进制转36进制
- Oracle timestamp类型介绍及运用
- oracle 一次删除多张表
- oracle的to_number、to_char、to_date用法
- Goldengate 实现Oracle for Oracle 单向DDL操作同步
- Oracle数据库在线重做日志被删除的几种恢复方法
- oracle存储过程如何返回list,并用jdbc调用
- oracle存储过程
- oracle修改密码永不过期(默认180天过期)
- Oracle查询补全
- Oracle数据库异机升级
- oracle创建dblink问题
- Qlikview配置ODBC连接ORACLE/SQL SERVER
- 有关oracle的一些用户命令
- 安装12c遇到 Error in invoking target 'irman ioracle' of makefile
- oracle 锁机制
- 导入cx_Oracle时提示"DLL load failed"问题解决