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

PL/SQL Oracle Discussion :

fonction return (true or false)


Sujet :

PL/SQL Oracle

  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut fonction return (true or false)
    Bonjour

    plutot que de faire des jointures externes ou des sous requetes comment pourrais je faire une fonction PLSQL qui retourne true lorsque au moins un fils (id_number) existe pour un id_sup et false si n'y a pas de fils ?


    id_sup n'est pas obligatoire
    id_sup peut etre referencé dans plusieurs id_number

    select id_number,f(id_number) 'fils_existant'
    from t1


    table T1
    id_number (pk)
    id_sup

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Bonjour.
    Vous pouvez utiliser la fonction NVL2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_sup, NVL2(id_number, 'true', 'false') FROM t1

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    NVL2 ? en oracle 8

    je ne connais pas cette fonction !



    voici un exemple pour mieux comprendre mon souhait:

    id_sup id_number

    12
    12 13
    12 14
    14 15
    16

    select id_number,f(id_number) "true si id_number existe dans id_sup" ou sinon "false "

    from t1

    resultat:
    12,true
    13,false
    14,true
    15,false
    16,false

  4. #4
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    En général, il est plus performant de le faire en SQL (jointure externe, sous requête ou peut-être connect by) plutôt qu'en pl/sql. L'appel d'une fonction pl/sql devra faire un switch de contexte entre le moteur sql et le moteur pl/sql pour chaque enregistrement.
    cordialement,
    Franck.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Ok, j'avais mal compris.
    Vite fait, non optimisé, on a ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT t1.id_number, DECODE(t2.id_sup, NULL, 'false', 'true')
      FROM matable t1, matable t2
     WHERE t1.id_number = t2.id_sup (+)

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    merci

    c 'est bien le resultat attendu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] return dans une fonction ajax avec async: false,
    Par murdok74 dans le forum jQuery
    Réponses: 0
    Dernier message: 29/05/2014, 14h42
  2. return true ou false
    Par AlexFr99 dans le forum jQuery
    Réponses: 2
    Dernier message: 25/05/2011, 14h37
  3. [SQL] Fonction retournant le booléen false qui se transforme en true!
    Par fayred dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/09/2007, 12h37
  4. Réponses: 1
    Dernier message: 03/03/2006, 12h07
  5. probleme affichage visible = true ou false
    Par Hitmaaan dans le forum Access
    Réponses: 4
    Dernier message: 29/09/2005, 13h17

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