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 :

des % % dans une requête paramètrée


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut des % % dans une requête paramètrée
    Bonjour tout le monde,
    J'ai la requête paramètrée suivante :

    SELECT T.*, P.STOCKAGE_PHOTO FROM PERSONNES P INNER JOIN (SELECT MAX(CS.DATE_ATTRIBUTION) AS Expr1, SP.NUMSERIE, PS.NOM, PS.PRENOM, PS.Dte_Naissance, PR.ID_PORTEUR, PR.ID_CARTE, PS.PHOTO, PR.ID_PERSONNE , CS.STATUT, CS.DATE_ATTRIBUTION, CS.DATE_OPPOSITION, CS.DATE_DELIVRANCE,REFERENCIEL.NOM_CONNECTEUR FROM PORTEUR PR INNER JOIN PERSONNES PS ON PR.ID_PERSONNE = PS.ID_PERSONNE INNER JOIN REFERENCIEL ON PS.ID_REFERENCIEL = REFERENCIEL.ID_REFERENCIEL INNER JOIN SUPPORTE SP ON PR.ID_CARTE = SP.ID_CARTE INNER JOIN CARTES CS ON PR.ID_CARTE = CS.ID_CARTE AND SP.ID_CARTE = CS.ID_CARTE WHERE LOWER(substr(PS.ID_PERSONNE,0,length(PS.ID_PERSONNE)-12)) LIKE '%:idPersonne%' AND STATUT in ('ACTIF','OPPOSITION') GROUP BY PR.ID_PERSONNE, SP.NUMSERIE, PS.NOM, PS.PRENOM, PS.Dte_Naissance, PR.ID_PORTEUR, PR.ID_CARTE, PS.PHOTO, CS.STATUT, CS.DATE_ATTRIBUTION, CS.DATE_OPPOSITION, CS.DATE_DELIVRANCE, REFERENCIEL.NOM_CONNECTEUR) T ON P.ID_PERSONNE = T.ID_PERSONNE
    En executant cette requête, j'ai le message suivant :
    aucune donnée n'a été trouvée .

    sachant que dans cette clause where
    LIKE '%:idPersonne%'
    , il s'agit d'un paramètre que je défini définir.

    J'ai testé avec
    LIKE %:idPersonne%
    ORA-00911: caractère non valide

    Avez-vous une idée pour que cette requête marche bien avec les % entre mes paramètres ???? Merci

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIKE '%' || :idPersonne || '%'

  3. #3
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    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
    14
    15
    16
    17
    18
    19
    20
     
    SQL> variable empno varchar2(10);
    SQL> exec :empno := '%8%';
     
    ProcÚdure PL/SQL terminÚe avec succÞs.
     
    SQL> select empno, ename
      2  from scott.emp
      3  where empno like :empno;
     
         EMPNO ENAME
    ---------- ----------
          7698 BLAKE
          7782 CLARK
          7788 SCOTT
          7839 KING
          7844 TURNER
          7876 ADAMS
     
    6 ligne(s) sÚlectionnÚe(s).

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    et ?

  5. #5
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    j'ai essayé orafrance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '%' || :idPersonne || '%'
    , mais j'ai eu l'erreur suivante : ORA-00936: expression absente
    Sinon, j'ai pas compris ta proposition mnitu

  6. #6
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Tu ne peut pas faire LIKE = '%:variable%'
    Mais tu peut mettre les % dans la variable comme mon exemple le démontre
    Ou tu peut faire LIKE '%'||To_Char(:variable)||'%'

    Mais, moi je le ferrais comme je le proposé.

  7. #7
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    En fait, la solution de Orafrance marche. Je me suis rendu compte que j'ai mis 2 LIKE dans la requête (Conséquence d'un copié collé)
    Merci a toi mnitu pour ton aide. A très bientôt

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

Discussions similaires

  1. Entrer la valeur d'un paramètre dans une requête paramétrée
    Par emeric2502 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/11/2014, 20h22
  2. Caractère jocker dans une requête paramétrée
    Par jncoffy dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 25/02/2009, 15h27
  3. Variable "date" dans une requête paramétrée
    Par amtdev dans le forum Bases de données
    Réponses: 10
    Dernier message: 25/01/2008, 19h42
  4. des % % dans une requête paramètrée
    Par paradeofphp dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/11/2007, 14h35
  5. Réponses: 1
    Dernier message: 21/03/2006, 14h29

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