Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle:किसी IPv4 पते को किसी संख्या में परिवर्तित करना?

  • regexp_substr का उपयोग करके पते के चार अष्टक निकालें।
  • अष्टक को उनकी मूल स्थिति में वापस ले जाकर मान का पुनर्गठन करें।

रेगेक्सपी अपेक्षाकृत महंगा हो सकता है, इसलिए यदि आप इसे बहुत अधिक कर रहे हैं तो आप आईपी पते के साथ अपनी तालिका में संख्यात्मक मान को कैशिंग करने पर विचार कर सकते हैं।

with addr as (select '239.255.2.51' ip from dual)
select ip, to_number(regexp_substr(ip, '\d+', 1, 1)) * 16777216 +
           to_number(regexp_substr(ip, '\d+', 1, 2)) * 65536 +
           to_number(regexp_substr(ip, '\d+', 1, 3)) * 256 +
           to_number(regexp_substr(ip, '\d+', 1, 4)) n
  from addr;

IP                     N
------------- ----------      
239.255.2.51  4026466867 

पूर्णता के लिए, दूसरे रास्ते पर जाने का तरीका यहां दिया गया है।

with addr as (select 4026466867 n from dual)
select n, mod(trunc(n/16777216),256) ||'.'||
          mod(trunc(n/65536),   256) ||'.'||
          mod(trunc(n/256),     256) ||'.'||
          mod(n,                256) ip
from addr;

         N IP                                                                                                                                                                                                                                                             
---------- ------------
4026466867 239.255.2.51                                                                                                                                                                                                                                                     


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका 1 से सभी कॉलम और तालिका दो से एक कॉलम का चयन करें जिसे समूहीकृत किया गया है?

  2. अल्पविराम से अलग किए गए मानों को ऑरैकल में पंक्तियों में कैसे परिवर्तित करें?

  3. केवल पढ़ने के लिए Oracle होम

  4. Oracle SQL का उपयोग करके कुछ तार्किक नेटिंग के साथ रोलअप क्वेरी

  5. रेल 3.0.3 - Oracle_enhanced काम नहीं करता