22 Novembre 2017 à 11:44:54

Auteur Sujet: aide en sql  (Lu 2004 fois)

nguex

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
aide en sql
« le: 17 Avril 2007 à 08:49:23 »
bonjour j'ai besoin d'aide pour savoir comment créer des boucles en sql.
En effet il s'agit de faire des insertions. Je créé un fichier texte dans lequel je mets 'noms' et 'dates de naissance'. ensuite il faut que je fasse une boucle telle que tant que la ligne de lecteure n'est pas nulle,, le script va chercher les noms les rentre dans une variable et fait de même pour les dates de naissance.
merci de votre aide

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : aide en sql
« Réponse #1 le: 17 Avril 2007 à 11:17:40 »
Bonjour,

Vous allez vraiment tout faire en language sql, ou combiné à un autre language de programmation pour lire dans le fichier etc ?
D'une manière générale, il faut éviter les boucles en SQL car en cas de pépin ça fait boum :)

Si vous n'avez pas trop de contraintes, vous pouvez utiliser un language à côté qui récupérera toutes les données et préparera la requête INSERT. Il n'y aura pas besoin de boucler dessus, il suffira de préparer une requête du genre :
$sql= "INSERT INTO matable VALUES ('id1','donnee1'), ('id2','donnee2'), ('id3','donnee3')";... qui insérera plusieurs enregistrements d'un coup.
Cordialement,
Damien

Tutoriels informatique

nguex

  • Nouveau membre
  • *
  • Messages: 8
  • Points gagnés: 0
    • Voir le profil
Re : aide en sql
« Réponse #2 le: 17 Avril 2007 à 12:00:45 »
oui il faut absolument que je fasse la boucle en sql. J'ai trouvé ce code sur internet

 declare @Variable type
while ((select min(X) from Y)!=null)
begin
    select @Variable=min(X) from Y
    traitement sur @Variable
    delete Y where X=@Variable
end

Le problème c'est que mon fichier txt n'est pas une table de BD alors je ne sais pas comment faire la selection.
Merci de votre aide.

Damien

  • Rédacteur Admin
  • Intarissable
  • *****
  • Messages: 2988
  • Points gagnés: 7
    • Voir le profil
    • aide informatique
Re : aide en sql
« Réponse #3 le: 17 Avril 2007 à 12:40:55 »
Ca dépend du SGBD aussi, la plupart ne permettent pas la lecture / écriture de fichiers textes en effet (Oracle a des fonctions permettant de le faire il me semble).

Sinon il y a une autre solution certainement aussi rapide car peut-être plus simple à comprendre, ce serait d'utiliser une table temporaire.
Là le truc serait de bien créer votre fichier texte avant, sous une forme importable par le SGBD (csv...), de façon à importer le fichier dans une table. Ensuite quand vous les avez dans la table, là vous pouvez faire vos traitements en sql comme vous voulez...
Cordialement,
Damien

Tutoriels informatique