存储成char或varchar2就可以了,干吗还要转换
解决方案 »
- 分析tnsnames.ora文件失败, ServiceAliasException:11
- 谁能帮我看看这个正则表达式的意思 regexp_substr(sql_text, '/\*.*_\d{8}\_\d{6,}')
- 请各位分享一下访问Oracle数据库的效率及方法~
- 急!如何验证大量数据?
- 求助,oracel中关于model字句的用法。
- Oracle监听启动后自动停止该如何解决
- oracle批量插入导致的问题
- 数据库连接出问题了
- 从SQLSERVER中导入到Oracle数据库后,发现数据库中表的关键字和缺省值丢失,有谁能帮忙解决?
- 求助,oracle无法连接
- 关于Oracle7中存储过程的问题(100分,不够再加)在线等待
- 请问如何从一个函数中返回一个记录集
要比较IP大小呀。
create or replace function fun_ip(str_ip in varchar2)
return number
is
dec_sum number;
dec_ip number;
dec_ip_sum number;
dec_cnt number;err_ip_length exception;
begin
if str_ip is null or
length(str_ip) > 13
then
raise err_ip_length;
end if;
dec_ip_sum := 0;
dec_cnt := 1;
dec_ip := to_number(length(replace(str_ip,'.','')));
for for_ln in 1..dec_ip
loop
dec_ip_sum := dec_ip_sum + to_number(substr(replace(str_ip,'.',''),dec_cnt,1));
dec_cnt := dec_cnt + 1;
exit when dec_cnt > dec_ip;
end loop; dec_sum := dec_ip_sum;
return dec_sum;exception
when err_ip_length then
dec_sum := 0;
return dec_sum;
when others then
dec_sum := -1;
return dec_sum;
end;