Adresse IP stockées comme séparateur décimal - PL/SQL pour afficher en pointillés quad

Nous avons une base de données Oracle qui contient des adresses IP stockées comme des entiers décimaux - c'est incroyablement douloureux lors de la manipulation des données par les mains plutôt que via l'interface web, mais la main de la manipulation est très pratique et le réseau gars constamment nous demander de faire des choses étranges que l'interface web d'auteurs n'ont pas l'anticiper.

Quelqu'un pourrait-il me fournir le code PL/SQL ou autre méthode pour afficher ces décimales IPs comme décimale c'est à dire 123.123.123.123 format?

I. e. J'aimerais être en mesure d'exécuter une requête telle que :

select hostname, inttoip(ip_address) from host;

et ont la inttoip() procédure d'affichage de l'adresse ip comme 203.30.237.2 au lieu de 3407801602.

Idéalement, j'aimerais une procédure qui fournit la fonction inverse aussi, par exemple,

insert into host (hostname,ip_address) values ('some-hostname', iptoint('203.30.237.2'));

J'ai perl pour ce faire, mais mon PL/SQL/Oracle de connaissances n'est pas suffisant pour un port en PL/SQL.

Sinon un moyen d'exécuter le perl comme la langue de la procédure au sein de l'oracle contexte analogue à celui-ci dans postgres:

CREATE FUNCTION perl_func (integer) RETURNS integer AS $$
 <some perl>
$$ LANGUAGE plperl;

Serait formidable - si possible - peut-être même mieux que je le pouvais alors faire beaucoup de procédure des choses dans Oracle dans une langue que je suis familier avec.

Il est à l'intérieur de la JVM d'Oracle. N'perl version existent qui peuvent s'exécuter à l'intérieur de la JVM? Si oui, vous pouvez utiliser perl. Il est par exemple possible d'exécuter Jython avec l'Oracle de la JVM. Lire ici: forums.oracle.com/forums/...

OriginalL'auteur Jason Tan | 2009-07-05