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 :

Faire un "ou binaire" dans un select


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut Faire un "ou binaire" dans un select
    Bonjour,

    Je souhaite exécuter une requête du genre suivant :

    Soit une table TBL avec deux colonnes CHAMP1(integer) et CHAMP2(varchar2).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select truc(CHAMP1), CHAMP2
    from TBL
    group by CHAMP2;
    truc réaliserait un ou binaire (Exemple : 101 + 011 = 111)

    Existe t'il un mot clef pour réaliser cette opération à la place de truc (j'ai essayé truc mais ça marche pas )

    Merci.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    une fonction java utilisant la classe java.math.BigInteger devrait répondre à ta demande .

    CDLT.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut
    Citation Envoyé par taska
    une fonction java utilisant la classe java.math.BigInteger devrait répondre à ta demande .
    CDLT.
    Salut, merci d'avoir répondu, mais j'ai oublié de préciser que je souhaite faire cette requette dans une procédure stocké sous Oracle 9i.

    L'idée est de réaliser l'opération (si possible) directement du côté du serveur.
    Si il n'y a pas de solution, je ferai le travail côté client dans mon code .Net.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    lorsque je parlais de fonction, il s'agissait bien d'une fonction écrite en java sur le noyau ( 9i > pas de pb ! ) .

    Cette fonction serait appelée de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select fct_java_or(CHAMP1, CHAMP2) result
    from TBL
    et voila un p'tit bout de code ..

    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
    18
    19
    20
    21
    22
    /*
     * 
       // Other bitwise operations
        bi = bi.xor(bi);
        bi = bi.and(bi);
        bi = bi.not();
        bi = bi.or(bi);
        bi = bi.andNot(bi);
     
     */
    public String javaOR ( String S1, String S2){
       byte[] byteS1 =S1.getBytes();
       byte[] byteS2 =S2.getBytes();
       BigInteger biS1 = new BigInteger(byteS1);
       BigInteger biS2 = new BigInteger(byteS1);
       biS1 = biS1.or(biS2);
       return biS1.toString(2);
    }
     
    public Test()  {
      System.out.println (javaOR ("Salut ptitmika","Comment vas tu ?"));
    }
    CDLT.

  5. #5
    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
    ca marche pas ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT  TO_NUMBER(REPLACE(TO_CHAR(101 + 1010),'2','1'))
    FROM dual

  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
    Je complète : Fonctions ET, Ou_inclusif, OU_exclusif
    On peut rajouter le NAND, NOR, etc.. facilement avec le translate.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT  TO_NUMBER(REPLACE(TO_CHAR(101 + 1010),'2','1')) AS OU_INCLUSIF_BINAIRE
    FROM dual
     
    SELECT  TO_NUMBER(TRANSLATE(TO_CHAR(101 + 1110),'012', '001')) AS ET_BINAIRE
    FROM dual
     
    SELECT  TO_NUMBER(TRANSLATE(TO_CHAR(101 + 1110),'012', '010')) AS OU_EXCLUSIF_BINAIRE
    FROM dual

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    Citation Envoyé par McM
    ca marche pas ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT  TO_NUMBER(REPLACE(TO_CHAR(101 + 1010),'2','1'))
    FROM dual
    ... bah si !
    Mais si tu veux travailler sur une chaine de caractères, tu fais comment ?
    javaOR ("Salut ptitmika","Comment vas tu ?")
    CDLT.

Discussions similaires

  1. [2008R2] Faire un Replace avec un Regex dans un select
    Par Sql2008 dans le forum Développement
    Réponses: 1
    Dernier message: 29/07/2013, 16h47
  2. Réponses: 2
    Dernier message: 07/06/2010, 03h13
  3. [MySQL] Comment faire le tri des membres actifs dans un SELECT
    Par pasc06 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/11/2008, 14h00
  4. cmt faire prendre en compte un _ dans un select like
    Par Mihalis dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/01/2007, 21h46

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