Oracle自定义一个把 IP 地址转成整数的函数
2016-12-29 14:06
288 查看
CREATE OR REPLACE FUNCTION fn_ipaddr_to_num (p_ipaddr VARCHAR2) RETURN NUMBER IS v_ret NUMBER := 0; k INT := 3; j INT := 0; i INT := 1; len INT := 0; len1 INT := 0; str VARCHAR2 (4000); str_split ty_str_split := ty_str_split (); BEGIN len := LENGTH (p_ipaddr); IF p_ipaddr IS NULL OR len = 0 THEN RETURN 0; ELSE WHILE j < len LOOP j := INSTR (p_ipaddr, '.', i); IF j = 0 THEN j := len; str := SUBSTR (p_ipaddr, i); v_ret := v_ret + (TO_NUMBER (str) * POWER (256, k)); IF i >= len THEN EXIT; END IF; ELSE str := SUBSTR (p_ipaddr, i, j - i); i := j + 1; v_ret := v_ret + (TO_NUMBER (str) * POWER (256, k)); END IF; k := k - 1; END LOOP; END IF; RETURN v_ret; EXCEPTION WHEN OTHERS THEN RAISE; END fn_ipaddr_to_num; /
相关文章推荐
- Oracle 自定义split 函数
- 线上VMS业务oracle数据库用户XXX密码更改
- RAC一个节点自动重启问题分析
- Oracle中的三种 UPDATE FROM 的解决方案
- 一个用 Oracle 函数索引进行优化的例子
- wm_concat函数 用法
- Oracle之表间关联查询
- Oracle 中 isnumeric 的三种实现
- 配置 Oracle 透明网关访问 SQL Server
- Oracle 列数据聚合方法汇总
- Oracle小函数大用处!
- TEC1303.Form个性化技术总结 - 第四部分 Custom.pll个性化开发实例
- Oracle 索引的分类
- oracle 递归查询学习
- [转载Oracle官方中文博客]关于RunQ过高引起的latch等待问题
- Oracle 11g 闪回作业
- Oracle sqlldr 如何导入一个日期列
- Oracle数据库的安全性措施概述
- Oracle sql loader 导数据时添加序号的三种方法
- Oracle 的汉字排序问题