我們有一個Oracle數據庫,其中包含以十進制整數形式存儲的IP地址 - 當用手操作數據而不是通過Web界面時,這非常痛苦,操作非常方便,因爲網絡人員不斷要求我們做一些奇怪的事情,網絡界面的作者沒有預料到。以十進制形式存儲的IP地址 - PL/SQL以點陣形式顯示
有人能給我提供PL/SQL或其他方法來顯示這些十進制IP作爲點分十進制,即123.123.123.123格式?
I.e.我想能夠運行查詢,例如:
select hostname, inttoip(ip_address) from host;
和具有inttoip()
過程顯示IP_ADDRESS作爲203.30.237.2而不是作爲3407801602.
理想我想它提供了一個過程反函數也是如此,例如
insert into host (hostname,ip_address) values ('some-hostname', iptoint('203.30.237.2'));
我有perl來做這件事,但是我的PL/SQL/Oracle知識不夠好,無法將它移植到PL/SQL中。
或者的方式來運行Perl作爲類似於Postgres的以下神諭範圍內的程序語言:
CREATE FUNCTION perl_func (integer) RETURNS integer AS $$
<some perl>
$$ LANGUAGE plperl;
將是巨大的 - 如果可能的話 - 可能甚至更好,因爲我可以用我熟悉的語言在Oracle內部完成大量程序性任務。
裏面有甲骨文JVM。是否存在可以在JVM內部運行的perl版本?如果是這樣你可以使用Perl。例如,可以使用Oracle JVM運行Jython。請閱讀此處:http://forums.oracle.com/forums/thread.jspa?threadID=492882&tstart=15 – tuinstoel 2009-07-05 17:11:41