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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2017
    Messages : 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 éprouvé
    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 : 54
    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
    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.

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

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

    Informations forums :
    Inscription : Février 2017
    Messages : 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 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    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 averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2017
    Messages : 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 952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    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

+ 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