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 :

correspondant de "XOR" sous ORACLE


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Par défaut correspondant de "XOR" sous ORACLE
    salut tout le monde
    si qlq1 pe m'aider , g besoin d'integer un XOR dans ma requete pour extraire des informations , alors celui ci ne marche pas sous oracle .
    exite il un equivalent

    merci

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Non, mais en PL/SQL ça se fait facilement

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Par défaut XOR sous ORACLE
    merci pour cette solution mais, S'il vous plait si vous voulez bien me donner plus de détails

    merci

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    un truc de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ... INTO ... FROM ...
    IF SQL%ROWCOUNT = 0 THEN
      SELECT ... INTO ... FROM ...
    END IF;

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    WITH t AS (SELECT 0 AS n1, 0 AS n2 FROM dual
    UNION ALL SELECT 0 AS n1, 1 AS n2 FROM dual
    UNION ALL SELECT 1 AS n1, 1 AS n2 FROM dual
    UNION ALL SELECT 1 AS n1, 0 AS n2 FROM dual)
    SELECT n1, n2, ABS(n1-n2) xor1, 
    	CASE WHEN (n1 = 1 OR n2 = 1) AND n1 <> n2 THEN 1 ELSE 0 END AS xor2
    FROM t 
     
    N1	N2	XOR1	XOR2
    0	0	0	0
    0	1	1	1
    1	1	0	0
    1	0	1	1

  6. #6
    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

  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
    pour calculer 13 xor 14 tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select 
      utl_raw.cast_to_binary_integer(
        utl_raw.bit_xor(
          utl_raw.cast_from_binary_integer(13),
          utl_raw.cast_from_binary_integer(14)))
    from dual;
    3
    voire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select 
      13+14-2*bitand(13,14)
    from dual;
    quant au XOR logique, il existe en plsql mais pas en sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> exec if xor(true,false) then dbms_output.put_line('!'); end if
    !

  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

  9. #9
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Il existe la fonction non documentée SYS_OP_VECXOR, elle est utilisée pour écrire le noyau Oracle. Ce qui veut dire qu'elle peut disparaitre d'une version à une autre mais elle est plus rapide que les autres functions.
    IL existent d'autres fonctions cachés de la famille SYS_OP_...... comme :

    SYS_OP_VECOR
    SYS_OP_VECAND
    SYS_OP_VECBIT
    SYS_OP_NUMTORAW, etc

    Il y'a eu deja une discussion sur ces fonctions :ICI

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/07/2011, 20h57
  2. Caractere echappement (quote) et variables sous pgsql
    Par tonio.jt dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/10/2009, 21h06

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