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 Firebird Discussion :

insertion de données


Sujet :

SQL Firebird

  1. #1
    m-l
    m-l est déconnecté
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [résolu] insertion de données
    Bonjour,

    Je voudrais faire des "insert into" en blocs, c'est-à-dire dans interactive SQL je voudrais charger un fichier qui contient toute une liste de "insert into". Le problème est que quand je fais ceci, et qu'il y a environ plus de 80-90 lignes, j'obtiens ce message d'erreur :

    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 2, char -1
    INSERT

    Si je fais ensuite un "commit" malgré le message d'erreur, seulement 87 lignes sont enregistrées dans la base.

    Si par contre je charge un fichier contenant environ 80 lignes, je n'ai plus de message d'erreur et toutes les lignes sont enregistrées.

    J'aurais donc voulu savoir si il y a une limite dans le nombre d'insertions de données réalisées en une fois.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Non pas de limite, j'ai des scripts bien plus longs qui fonctionnent parfaitement sous ISQL...

    Vérifie bien la ligne qui est en erreur... A mon avis il y a un ; qui traine dans tes données...

    si c'est le cas utilise set term

  3. #3
    m-l
    m-l est déconnecté
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Voici les 3 premières lignes de mon fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("GTTCACCTTC", "Hs", 2, "NAT2 N-acetyltransferase 2 (arylamine N-acetyltransferase)", 3001515, "NlaIII");
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("GAATTACATT", "Hs", 2, "NAT2 N-acetyltransferase 2 (arylamine N-acetyltransferase)", 1000502, "NlaIII");
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("GAGTTGGGCT", "Hs", 2, "NAT2 N-acetyltransferase 2 (arylamine N-acetyltransferase)", 2000502, "NlaIII");
    et ceci est le message d'erreur que j'obtiens :

    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 2, char -1
    INSERT
    Je ne comprend pas ce que signifie char -1.
    Sinon par rapport à ce que tu m'as dit, je ne trouve pas de ";" mal placé, et si je met des "set term" cela ne change rien.

  4. #4
    Membre actif Avatar de seb.49
    Profil pro
    ljgdfgdf
    Inscrit en
    Octobre 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : ljgdfgdf

    Informations forums :
    Inscription : Octobre 2002
    Messages : 291
    Points : 209
    Points
    209
    Par défaut
    envoi plutot les dernières lignes

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Set term ne s'emploi pas seul... j'espere que tu l'as bien utilisé... on doit lui passer un paramètre : le nouveau code de terminaison (suivi du code de terminaison actuel pour valider la commande set term)..
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET TERM ^ ;
    ...
    liste de tes inserts ...
    ...
    SET TERM ; ^
    Sinon a première vue, de tes insert, ce qui me pose probleme se sont les double cotes : " , normalement les doubles cotes sont réservés pour encadrer des nom d'objet interbase (table, nom de colonne) qui ne sont pas écrit en majuscule ou avec des caractères standards.

    Pour les valeurs de type chaine il faut utiliser la simple cote : '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ('GTTCACCTTC', 'Hs', 2, 'NAT2 N-acetyltransferase 2 (arylamine N-acetyltransferase)', 3001515, 'NlaIII'); 
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ('GAATTACATT', 'Hs', 2, 'NAT2 N-acetyltransferase 2 (arylamine N-acetyltransferase)', 1000502, 'NlaIII'); 
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ('GAGTTGGGCT', 'Hs', 2, 'NAT2 N-acetyltransferase 2 (arylamine N-acetyltransferase)', 2000502, 'NlaIII');

  6. #6
    m-l
    m-l est déconnecté
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Les dernières lignes sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("TTCACTAGCC", "Hs", 458447, "- Homo sapiens transcribed sequence with moderate similarity to protein pdb:1LBG (E. coli) B Chain B, Lactose Operon Repressor Bound To 21-Base Pair Symmetric Operator Dna, Alpha Carbons Only", 2000502, "NlaIII");
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("ATTCTCTGAG", "Hs", 458447, "- Homo sapiens transcribed sequence with moderate similarity to protein pdb:1LBG (E. coli) B Chain B, Lactose Operon Repressor Bound To 21-Base Pair Symmetric Operator Dna, Alpha Carbons Only", 2000531, "NlaIII");
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("GGAATGTATT", "Hs", 458447, "- Homo sapiens transcribed sequence with moderate similarity to protein pdb:1LBG (E. coli) B Chain B, Lactose Operon Repressor Bound To 21-Base Pair Symmetric Operator Dna, Alpha Carbons Only", 2000510, "NlaIII");
    INSERT INTO SAGE_MAP (MAP_TAGSEQUENCE,MAP_ORGANISM,MAP_UNIGENECLUSTERNB,MAP_UNIGENECLUSTERNAME,MAP_RELIABILITYSCORE,MAP_ANCHOR) VALUES ("TTATTTTATA", "Hs", 458447, "- Homo sapiens transcribed sequence with moderate similarity to protein pdb:1LBG (E. coli) B Chain B, Lactose Operon Repressor Bound To 21-Base Pair Symmetric Operator Dna, Alpha Carbons Only", 2000509, "NlaIII");

  7. #7
    m-l
    m-l est déconnecté
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    quand je met les "SET TERM" comme tu me l'as précisé, il n'y a plus de message d'erreur. Seulement, maintenant le sablier SQL reste indéfiniment. Est-ce-que c'est normal parce que c'est long ou au contraire est-ce anormal.

  8. #8
    m-l
    m-l est déconnecté
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'oubliais de préciser que le sablier SQL reste à l'écran, aussi bien quand j'utilise les données entrées entre " " que lorsque je les rentre entre ' '

  9. #9
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par m-l
    quand je met les "SET TERM" comme tu me l'as précisé, il n'y a plus de message d'erreur. Seulement, maintenant le sablier SQL reste indéfiniment. Est-ce-que c'est normal parce que c'est long ou au contraire est-ce anormal.

    Arrff... je comprend que tu ne sais pas ce que fait Set term...

    En fait c'est utilisé pour préciser à Interbase quel est le caractère de terminaison des ordres SQL...
    Par defaut c'est le ; donc en faisant set term ^ ; celà devient le caractère ^.

    ce qui est utile quand tu crées des procédures stockées qui contiennent des ; à chaque fin d'instruction....
    mais peut etre utilie également si tu fais un script d'insert qui contient des chaines de caractères contenant des ;

    Daons si tu fais SET TERM ^ ; il va falloir que tu remplaces tout les ; de fin (et uniquement les ; de fin d'instruction SQL) par un ^ dans ton script...

    Mais c'est innutile si tu penses qu'il n'y a pas de ; dans tes chaines de caractères...

    Et donc oui c'est normal que le sablier reste actif, il attend que tu lui dise que l'instruction est terminée par un ^

  10. #10
    m-l
    m-l est déconnecté
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [résolu] insertion de données
    Merci beaucoup pour ton aide.
    En effet, il y avait un « ; » dans une données, mais comme l’erreur indiquée la ligne 2, je me suis focalisée dessus, alors que le problème était plus loin.
    Effectivement, je n’avais pas compris ce que voulais dire « SET TERM », et grâce à tes explications c’est beaucoup plus clair maintenant et ça fonctionne.

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

Discussions similaires

  1. Insertion de données avec Posgretsql
    Par djibril dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/05/2004, 11h23
  2. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  3. problème d'insertion de données
    Par Falgan dans le forum ASP
    Réponses: 2
    Dernier message: 06/04/2004, 09h29
  4. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  5. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33

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