10進整数として格納されたIPアドレスを含むOracleデータベースがあります-これは、Webインターフェイスを介してではなく手動でデータを操作する場合に非常に苦痛ですが、ネットワーク担当者が絶えず奇妙なことをするように要求するため、手動操作は本当に便利ですWebインターフェイスの作成者は予期していませんでした。
誰かがPL/SQLまたはこれらの10進数のIPをドット付き10進数、つまり123.123.123.123形式で表示する他の方法を教えてもらえますか?
つまり、次のようなクエリを実行できるようにしたいと思います。
select hostname, inttoip(ip_address) from host;
inttoip()
プロシージャにip_addressを3407801602ではなく203.30.237.2と表示させます。
理想的には、逆関数も提供する手順が必要です。
insert into host (hostname,ip_address) values ('some-hostname', iptoint('203.30.237.2'));
私はこれを行うためのperlを持っていますが、私のPL / SQL/Oracleの知識はそれをPL/SQLに移植するのに十分ではありません。
あるいは、postgresの以下に類似したoracleコンテキスト内で手続き型言語としてperlを実行する方法:
CREATE FUNCTION perl_func (integer) RETURNS integer AS $$
<some perl>
$$ LANGUAGE plperl;
オラクル内で私が精通している言語で多くの手続き的なことを行うことができたので、可能であれば、おそらくさらに良いでしょう。