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

Forms Oracle Discussion :

Erreur de syntaxe dans une requête PL/SQL


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut Erreur de syntaxe dans une requête PL/SQL
    Bonjour,

    voila la requête que je souhaite réaliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req := ' matricule := :MonBlock.matricule and nom like % :MonBlock.nom % and (prenom is null or prenom like %:MonBlock.prenom%)'
    et utiliser cette requête dans mon trigger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE
           req VARCHAR2(1000);
    BEGIN
          GO_BLOCK('LISTE_PERSONNE');
          Set_Block_Property('LISTE_PERSONNE', DEFAULT_WHERE, req);
          do_key('execute_query');
    END;

    J'aimerai avoir de l'aide pour corriger la syntaxe de ma requête pour que l'exécution se déroule normalement. Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Peux-tu nous donner le message d'erreur que tu as ?

    Sinon, le := doit être remplacé par = car dans ton WHERE tu veux une condition d'égalité, donc =, et pas une affectation.

    Je pense qu'il faut remplacer ta variable req par
    req := ' matricule=' := :MonBlock.matricule || ' and nom like %' := :MonBlock.nom || '% and (prenom is null or prenom like %' := :MonBlock.prenom'%)' --> ça va peut-être planter, mais je pense que tu as compris la solution.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut
    Quand j'utilise votre proposition, j'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    erreur 103 ligne 6, colonne 30
         Symbole "=" rencontré à l place d'un des symboles suivants:
         .(*@%&=.+;</> in mod not rem an exponent (**) <> or != or ~=>=<=<> and or like between is null is not || is dangling
         Symbole ""( inséré avant "=" pour continuer.
    erreur 103 ligne 6, colonne 151
          Symbole """ rencontré à l place d'un des symboles suivants:
         .(*@%&=.+;</> in mod not rem an exponent (**) <> or != or ~=>=<=<> and or like between is null is not || is dangling
         Symbole ""( inséré avant "=" pour continuer.

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut
    j'ai enfin trouvé la solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    req := ' matricule like ''%'  || :MonBlock.matricule || '%''';
    req := req || ' and nom like ''%'  || :MonBlock.nom || '%''';
    req := req || ' and (prenom is null or prenom like ''%'  || :MonBlock.prenom || '%'')';

  5. #5
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Cool, mais je ne vois pas pourquoi tu ne crées pas ta requête en une seule fois; pourquoi avoir fait req := req ...?

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut
    Parce que je n'arrive pas jusqu'à présent à bien échapper les % de ma requête

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

Discussions similaires

  1. Erreur de syntaxe dans une requête
    Par dark_geek dans le forum ASP
    Réponses: 10
    Dernier message: 28/05/2009, 18h15
  2. Erreur de syntaxe dans une requête
    Par Equinoxe5 dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/04/2009, 13h09
  3. Réponses: 8
    Dernier message: 09/09/2008, 09h28
  4. Erreur de syntaxe dans une requête SQL
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 08/01/2008, 17h19
  5. Erreur de syntaxe dans une requête SQL
    Par amnesias dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/01/2007, 12h50

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