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 :

Requête paramétrée dans une fonction


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Par défaut Requête paramétrée dans une fonction
    Salut,

    J'ai quelque chose de simple, une fonction qui a deux arguments en paramétres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (codecat IN bdc_TRACENAVIGATION.CODECATEGORIE%Type, codelangue IN bdc_CATEGORIES_LANGUE.CODELANGUE%Type)
    Dans cette fonction j'ai une requête encore plus simple qui utilise les paramétres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	   select CL.NOM_CATEGORIE
    	   from bdc_CATEGORIES_LANGUE CL
    	   inner join bdc_CATEGORIES_TREE CT on CT.CODECATEGORIE = CL.CODECATEGORIE
    	   where CL.CODELANGUE = codelangue
    	   and CT.LFT <= (select LFT from bdc_CATEGORIES_TREE where CODECATEGORIE = codecat)
    	   and CT.RGT >= (select RGT from bdc_CATEGORIES_TREE where CODECATEGORIE = codecat);
    Le problème, c'est comme s' il ne prennait pas en compte la clause WHERE, il me selectionne les noms dans toutes les langues. Pourtant la valeur de codelangue est bonne.

    Par contre lorsque je mets directement la valeur, ca fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where CL.CODELANGUE = 1
    J'ai testé la valeur de codelangue dans la fonction, elle détient bien la valeur que je passe en paramétre.

    J'ai également changé le type de codelangue mais sans succés.

    Quelqu'un à une idée?

  2. #2
    Invité
    Invité(e)
    Par défaut
    si je comprends bien codelangue désigne à la fois une variable et un nom de colonne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CL.CODELANGUE = codelangue
    doit être interprété comme une comparaison de colonne sur elle-même, donc toujours vrai.

    Change de nom pour la variable, déjà ça ne pourra que gagner en clarté à la lecture et pour la machine.
    Dis-nous ce que ça donne après.

  3. #3
    Membre éclairé
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Par défaut
    C'était bien ça merci.

  4. #4
    Membre éclairé
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Par défaut
    Oracle gére la casse ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sieldev Voir le message
    Oracle gére la casse ?
    Pas par défaut et seulement à partir de la 9i, je crois.
    Mais je te déconseille TRÈS fortement d'avoir recours à cette option. Pour se mettre dans la marde inutilement, y a pas mieux !!!

  6. #6
    Membre éclairé
    Avatar de Sieldev
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 259
    Par défaut
    Ok

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

Discussions similaires

  1. Tester l'existence d'un paramètre dans une fonction
    Par olivier1978 dans le forum Programmation (La)TeX avancée
    Réponses: 0
    Dernier message: 16/11/2007, 23h10
  2. Réponses: 6
    Dernier message: 24/07/2006, 15h22
  3. Réponses: 3
    Dernier message: 20/03/2006, 17h46
  4. [PL/SQL] Multi paramètre dans une fonction
    Par wiLL_ dans le forum Oracle
    Réponses: 2
    Dernier message: 28/02/2006, 17h31
  5. Réponses: 9
    Dernier message: 13/05/2005, 03h13

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