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

Oracle Discussion :

[Quering] Resultat différent selon PL ou pas ?


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    dkd
    dkd est déconnecté
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 17
    Par défaut [Quering] Resultat différent selon PL ou pas ?
    Bonjour,

    Le resultat d'une requete est different selon si je l'execute dans un programme PL ou simplement.

    Dans le premier cas, la requete ne trouve rien, mais sinon elle doit me ramener un seule ligne.

    Je sais que c'est la meme requete car j'ecris la requete dans une trace puis je l'execute apres.

    Je ne comprend absolument rien.

    Merci par avance pour votre aide.

    DKD

  2. #2
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    Salut,
    on pourrait peut-être avoir un peu de code ?

    merci !

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 138
    Par défaut
    Il faudrait plus de détails afin de pouvoir solutionner ce problème.

    Est-ce que le programme PL est exécuté en tant que current_user ou en tant que definer? Est-ce que cette requête est batie dans une string et exécutée via un ref cursor? Donner la requête svp.

  4. #4
    dkd
    dkd est déconnecté
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 17
    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
     
    BEGIN
     
        MaRequete := 'SELECT CHAMP1, CHAMP2, CHAMP3 FROM AutreSchema.Matable WHERE CHAMP4 = '||MaValeur;
     
        trace_debug ('MaRequete => '||MaRequete);
        EXECUTE IMMEDIATE MaRequete INTO Recup1,Recup2,Recup3;
     
    EXCEPTION WHEN NO_DATA_FOUND THEN
      trace_erreur ('Ce n''est pas bien',CodeErr);
      RETURN CodeErr;
    END;
    Au depart la requete n'etait pas executée avec "EXECUTE IMMEDIATE" , mais je l'ai ajouté pour pister le resultat. En clair, j'avais juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CHAMP1, CHAMP2, CHAMP3	FROM AutreSchema.Matable	WHERE CHAMP4 = MaValeur;

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    AutreSchema et MaTable, tu dois également les concaténer dans ta chaine

  6. #6
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    oui, et ????

    quels sont les résultats attendus ? et les résultats obtenus ???

    Désolé mais nous sommes tous aussi passablement occupés à nos job respectifs, donc on a assez peu la possibilté de jouer aux devinettes !

    si tu veux qu'on t'aide, faut pas non plus qu'on doive t'arracher les infos !

  7. #7
    dkd
    dkd est déconnecté
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 17
    Par défaut
    AutreSchema et MaTable, tu dois également les concaténer dans ta chaine
    La chaine est ecrit en un seul bloc, je n'ai pas besoin de concatener AutreSchema et MaTable.

    quels sont les résultats attendus ? et les résultats obtenus ???
    Quand j'execute dans le programme il ne ramene rien, il va dans le NO_DATA_FOUND, alors qu'en excution directe tous les champs sont renseignés.

    Est-ce que le programme PL est exécuté en tant que current_user ou en tant que definer?
    Je ne comprend pas la question.

  8. #8
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    Citation Envoyé par dkd
    AutreSchema et MaTable, tu dois également les concaténer dans ta chaine
    La chaine est ecrit en un seul bloc, je n'ai pas besoin de concatener AutreSchema et MaTable.
    Hormis si ton schéma physique s'appelle AutreSchéma, et que le nom de ton objet table s'appelle MaTable, tu dois concaténer dans ta chaine ces 2 variables (comme ta variable MaValeur).

    D'ailleurs, fait une DBMS_OUTPUT.PUT_LINE de ta variable MaRequete et colle là sous SQL*Plus tu verras !

    Autre chose, utilise également les bind variables dans ton instruction

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaRequete='SELECT MonChamp FROM MaTable WHERE MonChamp= :1';
    EXECUTE IMMEDIATE MaRequete USING MaValeur INTO...

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 138
    Par défaut
    Citation:
    Est-ce que le programme PL est exécuté en tant que current_user ou en tant que definer?

    Je ne comprend pas la question.

    http://sheikyerbouti.developpez.com/pl_sql/?page=Chap4

    C'est une table ou une vue? Donne le describe de la table/vue pour voir si ce ne serait pas un problème de conversion implicite. Ta variable MaValeur ne serait pas un type date et tu ne fais pas de trunc()?

    Ya pas de VPD (virtual private database) la dedans? Ou de vue qui filtre les données selon un user ou une variable de package?

    Essaie de donner ton contexte d'exécution, de où tu appelles ton pl/sql et tu fais des actions avant/après?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/09/2006, 12h41
  2. Affichage différent selon texte dans une case
    Par pingoo78 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 16h32
  3. tailles d'input différentes selon les postes (?)
    Par mch_27 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/10/2005, 11h21
  4. [Interface graphique]Composant différents selon le PC
    Par Cyborg289 dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 01/08/2005, 10h05
  5. CSS : fichier include différent selon chaque resolution
    Par Sylvain245 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 31/03/2005, 17h57

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