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

SGBD Perl Discussion :

[MySQL]Problème avec load data infile


Sujet :

SGBD Perl

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut [MySQL]Problème avec load data infile
    Bonjour

    J'essaie d'importer une base dans MySQL via Perl et DBI. Je veux utiliser la commande SQL load data infile pour remplir mes tables. Voici mon code :
    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
     
    my $database = "Ensembl_Homo_sapiens";
    my $dbh = DBI->connect("DBI:mysql:database=".$database.";host=localhost",
                             "gldavid", "passpass",
                             {'RaiseError' => 1}) or die "$!\n";
    foreach my $table (@tables){
    	my $file = $table;
    	$table =~ s/^\/home\/gldavid\/Snippets\/Perl\/getEnsemblHuman\/files\///;
    	$table =~ s/\.txt\.table$//;
    	my $reket = "load data infile '".$file."' into table Ensembl_Homo_sapiens.".$table;
    	if(-e $file){
    		print "Loading data into ".$table."\n";
    		$dbh->do($reket);
    	}
    }
    $dbh->disconnect();
    Donc, pour tout fichier de données présents, je veux les charger.
    Or, bien que les noms de fichiers et de tables soient corrects, j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBD::mysql::db do failed: Can't get stat of '/home/gldavid/Snippets/Perl/getEnsemblHuman/files/regulatory_feature_object.txt.table' (Errcode: 13) at getEnsemblHuman.pl line 68.
    Bizarre , ma localisation est bonne pourtant.
    Quelqu'un peut-il m'aiguiller ?

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    oui mais ton $file, c'est pas un fichier, mais une table sql!!!
    Pour la programmation Perl voir dans les cours et tutoriels : http://perl.developpez.com/cours/

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut Djib'

    Oui mais non !
    Parce que si j'affiche la valeur des 2 scalaires, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $table=regulatory_search_region $file=/home/gldavid/Snippets/Perl/getEnsemblHuman/files/regulatory_search_region.txt.table
    Donc, à priori, c'est bon.
    Mais j'ai toujours mon problème.
    Merci à toi.

    @++

    PS: ça fait plaisir de te revoir !
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Trouvé !
    Ma requête était incomplète, il fallait que j'ajoute le mot clé local !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $reket = "load data local infile '$file' into table $table";
    Et ça marche

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,

    il me semble que le message Errcode 13 c'est pour les droits d'accès.

    Je n'ai rien dit
    --
    lami20j

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par GLDavid
    Trouvé !
    Ma requête était incomplète, il fallait que j'ajoute le mot clé local !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $reket = "load data local infile '$file' into table $table";
    Et ça marche

    @++

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

Discussions similaires

  1. Problème avec LOAD DATA INFILE
    Par FrontLine dans le forum Administration
    Réponses: 1
    Dernier message: 19/07/2008, 01h36
  2. problème avec load data infile
    Par organik19 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 10/07/2008, 10h14
  3. Probléme avec load data infile
    Par Moez.B dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/08/2006, 10h01
  4. [MySQL] Problème avec LOAD DATA INFILE
    Par Pgs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/07/2006, 15h33
  5. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59

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