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

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Points : 104
    Points
    104
    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 émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    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 : 1 993
    Points : 2 499
    Points
    2 499
    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.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Points : 104
    Points
    104
    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 régulier
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Points : 104
    Points
    104
    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 émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    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 : 1 993
    Points : 2 499
    Points
    2 499
    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 ...?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

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

  7. #7
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    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 : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Depuis Oracle 10, on peut banaliser N caractères spéciaux en une fois via la syntaxe
    q'caractère_débuttexte avec caractères spéciaux 'caractère_fin'

    ATTENTION : si caractère_début est [ alors caractère_fin est ] mais on peut utiliser | et | voir même des lettres classiques.

    Regarde ce lien https://livesql.oracle.com/apex/live...LAMZKRF6P.html.

    Exemple : BEGIN
    DBMS_OUTPUT.PUT_LINE ( q'[What's a quote among friends?]');
    END;
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Depuis Oracle 10, on peut banaliser N caractères spéciaux en une fois via la syntaxe
    Je suis sur 6i

  9. #9
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    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 : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Ah oui, quand même
    Date de sortie Oracle 6 : 1988!!

    Ce ne serait pas plutôt la 9i?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  10. #10
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il parle de Forms.

  11. #11
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message

    Ce ne serait pas plutôt la 9i?
    l'entreprise à tenter de migrer les applications vers la 11g mais les navigateurs actuels n'affichent pas les formulaires . Elle a ensuite tenter de migrer vers la 12c, et là l'installation n'a pas réussi après des semaines de tentative. Donc on galère toujours sur la 6i avec la BDD 10g, en attendant le père noël

  12. #12
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Ah oui, le problème des navigateurs qui ont désactivé le NPAPI .. sauf Flash bien sûr, les jeux rapportent beaucoup trop

    IE fonctionne encore (ce que nos clients utilisent), et Firefox ESR 32 bits (ce que j'utilise).
    https://www.java.com/fr/download/help/firefox_java.xml
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  13. #13
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Points : 104
    Points
    104
    Par défaut
    McM,

    tous les utilisateurs de l'entreprise utilisent Windows 10 64bits. En passant j'ai aussi remarqué que lorsqu'on utilise une version supérieure de forms , la version antérieure ne l'ouvre pas et ne le compile pas aussi. ça aussi ça n'encourage pas les Développeurs de l'entreprise pour migrer.

+ 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