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

PL/SQL Oracle Discussion :

SQL dynamique avec insert.ORA-00917: missing comma


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Points : 16
    Points
    16
    Par défaut SQL dynamique avec insert.ORA-00917: missing comma
    bonjour je veux faire une selection dynamique et j'ai cette erreur :
    ORA-00917: missing comma. je ne vois pas ou est ce que je dois rajouté une virgule, help me please !!

    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
    EXECUTE IMMEDIATE ( 'INSERT
                          INTO '|| lv_instance_name ||'@db-link ( stat_id,
                                                                      type,
                                                                      stat_date,
                                                                      db_name,
                                                                      value_1,
                                                                      value_2,
                                                                      value_3,
                                                                      value_4,
                                                                      value_5
                                                                     )
                                          VALUES ('||n_stat_id||','''
                                                  ||l_type||''','''
                                                  ||to_char(n_stat_date)||''','
                                                  ||lv_database_name||','
                                                  ||n_value_1||','    
                                                  ||n_value_2||','
                                                  ||n_value_3||','
                                                  ||n_value_4||','
                                                  ||n_value_5||')');

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,
    Il me semble que tu as un "value_5", juste avant VALUES, qui se termine avec une virgule mais rien derrière.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Oui c'est une erreur de ma part quand j'ai copier coller le code mais cependant j'ai toujours l'erreur..

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Il manque une virgule à la fin des lignes 5 et 6
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    modifier a l'instant, mais ce n'est pas le probleme ... il y a toujours cette erreur

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    1/ Il suffit d'afficher la requête générée afin de pouvoir la tester syntaxiquement...
    2/ Utiliser des requêtes paramétrées afin de simplifier l'écriture de la requête, limiter le parse des requêtes générées et éviter les injections sql.

    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    l_query : = 'INSERT INTO '|| lv_instance_name ||'@db-link ( stat_id, type, stat_date, db_name, value_1, value_2, value_3, value_4, value_5)
                 VALUES (:1, :2, to_char(:3), :4, :5, :6, :7, :8, :9)';
    --
    dbms_output.put_line (l_query);
    --
    EXECUTE IMMEDIATE l_query using n_stat_id, l_type, n_stat_date, lv_database_name, n_value_1, n_value_2, n_value_3, n_value_4, n_value_5;
    PS : Le to_char sur une colonne qui pourrait être une date sans préciser le moindre format semble douteux

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    merci skuatamad je l'ai testé comme tu me l'a dis mais j'ai comme erreur cette fois :ORA-06502: PL/SQL: numeric or value error: character string buffer too small

  8. #8
    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
    A priori une variable mal taillée.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    j'ai résolu le problème, j'avais oublié un quote, merci pour vous réponses

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

Discussions similaires

  1. erreur : ORA-00917: missing comma pendant l'insertion .
    Par Maro_21 dans le forum NetBeans
    Réponses: 4
    Dernier message: 25/05/2016, 01h08
  2. Requête SQL dynamique avec nom de table dans une variable
    Par jonjack dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 15/09/2011, 14h37
  3. select dans SQL dynamique avec table variable
    Par enzodb2 dans le forum DB2
    Réponses: 4
    Dernier message: 26/07/2007, 16h28
  4. Réponses: 3
    Dernier message: 04/06/2007, 12h29
  5. [My SQL]probleme avec insert select
    Par jmjmjm dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/01/2007, 11h24

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