declare
val varchar2(1024);
val_new varchar2(1024);
i integer;
p1 integer;
p2 integer;
p3 integer;
p4 integer;
ip integer;
begin
val := '192.168.010.017';
p1 := 0;
p2 := 0;
p3 := 0;
p4 := 0;
i := instr(val,'.',1);
if i <> 0 then
val_new := substr(val,1,i-1);
p1 := to_number(val_new);
dbms_output.put_line(to_char(p1));
val := substr(val,i+1);
i := instr(val,'.',1);
if i <> 0 then
val_new := substr(val,1,i-1);
p2 := to_number(val_new);
dbms_output.put_line(to_char(p2));
val := substr(val,i+1);
i := instr(val,'.',1);
if i <> 0 then
val_new := substr(val,1,i-1);
p3 := to_number(val_new);
dbms_output.put_line(to_char(p3));
val := substr(val,i+1);
p4 := to_number(val);
dbms_output.put_line(to_char(p4));
end if;
end if;
end if;
ip := p4 + p3*(power(2,8)) + p2*(power(2,16)) + p1*(power(2,24));
dbms_output.put_line(to_char(ip));
exception
when others then
null;
end;
本文介绍了一个使用PL/SQL编写的程序,该程序能够解析IPv4地址字符串,并将其各个部分转换为整数形式,最后组合成一个整数表示的IP地址。通过逐步分解IP地址并利用内置函数进行转换,演示了如何处理字符串和数字之间的转换。

被折叠的 条评论
为什么被折叠?



