IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

comparaison de deux IP


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 69
    Par défaut comparaison de deux IP
    Salut ,
    je suis en oracle 10g
    j'aime comparer deux adresse IP jusqu'au 3 eme point .
    par exemple 192.168.12.15 et 192.168.12.19 sont egaux .
    merci d'avance pour votre aide

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    utilises substr et instr

  3. #3
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT 1
      FROM DUAL
     WHERE REGEXP_SUBSTR (:ip, '[^.]+', 1, 1) = REGEXP_SUBSTR (:ip1, '[^.]+', 1, 1)
       AND REGEXP_SUBSTR (:ip, '[^.]+', 1, 2) = REGEXP_SUBSTR (:ip1, '[^.]+', 1, 2)
       AND REGEXP_SUBSTR (:ip, '[^.]+', 1, 3) = REGEXP_SUBSTR (:ip1, '[^.]+', 1, 3)

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL> select regexp_substr('192.168.12.15','\d{1,3}\.\d{1,3}\.\d{1,3}\',1) a,
      2         regexp_substr('192.168.12.19','\d{1,3}\.\d{1,3}\.\d{1,3}\',1) b
      3    from dual
      4  ;
     
    A                                B
    -------------------------------- --------------------------------
    192.168.12                       192.168.12

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    C'est encore plus simple, mnitu bravo

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Pour juste une opération simple comme celle ci, l'utilisation du regexpr n'est pas super utile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUBSTR('192.168.12.15',1, INSTR('192.168.12.15', '.', -1)-1) a,
           SUBSTR('192.168.12.19',1, INSTR('192.168.12.19', '.', -1)-1) b
    FROM dual
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUBSTR('192.168.12.15',1, INSTR('192.168.12.15', '.', 1,3)-1) a,
           SUBSTR('192.168.12.19',1, INSTR('192.168.12.19', '.', 1,3)-1) b
    FROM dual

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where 
    regexp_substr('192.168.12.15','.*\.')=regexp_substr('192.168.12.19','.*\.')
    MCM: bien sûr regexp n'est pas utile et lent de surcroix...

  8. #8
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Oui c'est vrai. Sauf que les requêtes ne sont pas vraiment équivalentes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SQL> with data as
      2  (
      3    Select '192.168.12.15' ip From dual
      4    Union ALL
      5    Select 'AAA.BBB.CC.DDD' ip From dual
      6  )
      7  Select SUBSTR(ip,1, INSTR('192.168.12.15', '.', -1)-1) MCM,
      8         regexp_substr(ip,'.*\.') Laurent,
      9         regexp_substr(ip,'\d{1,3}\.\d{1,3}\.\d{1,3}\',1) Marius
     10    From data
     11  /
     
    MCM        LAURENT        MARIUS
    ---------- -------------- --------------
    192.168.12 192.168.12.    192.168.12
    AAA.BBB.CC AAA.BBB.CC.
    Je pense que c'est à celui qui fera l'emploie de décider de quoi il a vraiment besoin.

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par sofienems Voir le message
    Salut ,
    je suis en oracle 10g
    j'aime comparer deux adresse IP jusqu'au 3 eme point .
    par exemple 192.168.12.15 et 192.168.12.19 sont egaux .
    merci d'avance pour votre aide
    encore plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     rtrim('192.168.12.15','0123456789')=
      rtrim('192.168.12.19','0123456789')

  10. #10
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Sacré Laurent! Faut toujours que tu nous sortes des soluces délirantes de derrière les fagots

  11. #11
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Ah, ben oui.
    Quel con de pas y avoir pensé !

  12. #12
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL> r
      1  SELECT chartorowid('192.165.26.19') ip1,
      2         chartorowid('192.165.26.15') ip2
      3*   from dual
     
    IP1                IP2
    ------------------ ------------------
    00000192.0165.0026 00000192.0165.0026
    Tirez pas

  13. #13
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par mnitu Voir le message

Discussions similaires

  1. Comparaison de deux float
    Par MysticKhal_0 dans le forum C
    Réponses: 5
    Dernier message: 14/09/2012, 01h08
  2. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  3. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05
  4. [SYBASE] Comparaison de deux datetime
    Par paf15 dans le forum Sybase
    Réponses: 1
    Dernier message: 17/04/2005, 16h51
  5. Réponses: 5
    Dernier message: 06/10/2003, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo