यह वह कार्य है जिसकी आपको आवश्यकता है:
create or replace
function inttoip(ip_address integer) return varchar2
deterministic
is
begin
return to_char(mod(trunc(ip_address/256/256/256),256))
||'.'||to_char(mod(trunc(ip_address/256/256),256))
||'.'||to_char(mod(trunc(ip_address/256),256))
||'.'||to_char(mod(ip_address,256));
end;
(फ़ंक्शन को नियतात्मक बनाने और बोर्ड पर लिए गए to_char का उपयोग करने के बारे में टिप्पणियाँ - धन्यवाद)।
Oracle 11G में आप स्वरूपित IP पते को होस्ट टेबल पर एक वर्चुअल कॉलम बना सकते हैं:
alter table host
add formatted_ip_address varchar2(15)
generated always as
( to_char(mod(trunc(ip_address/256/256/256),256))
||'.'||to_char(mod(trunc(ip_address/256/256),256))
||'.'||to_char(mod(trunc(ip_address/256),256))
||'.'||to_char(mod(ip_address,256))
) virtual;
यदि आवश्यक हो तो इस कॉलम को प्रश्नों के लिए अनुक्रमित किया जा सकता है।
आपकी क्वेरी बन जाती है:
select hostname, formatted_ip_address from host;