2012-03-19 23 views
0

Perlで初心者です。私はこの小さなサブPerlでのMySQLエラー(エラーコード2)

sub processOpen{ 
    my($filename, $mdbh)[email protected]_; 
    my($qr, $query); 

    # parse filename to get the date extension only 
    # we will import the data into the table with this extension 
    # /home//logs/open.v7.20120710_2213.log 
    my(@fileparts) = split(/\./, $filename); 
    my(@filedateparts) = split(/_/, $fileparts[2]); 
    my($tableext) = $filedateparts[0]; 


    $query = "LOAD DATA INFILE '" . $filename . "' INTO TABLE open_" . $tableext . " FIELDS TERMINATED BY '||' LINES TERMINATED BY '\n' 
       (open_datetime, open_date, period,tag_id)"; 

    $qr = $$mdbh->prepare($query); 
    $qr->execute(); # causes error (see below) 
    $qr->finish(); 
} 

を持っていると私は、次のエラーを取得しています:

DBD::mysql::st execute failed: Can't get stat of '/home/logs/open..v7.20120710_2213.log' (Errcode: 2) at /home/thisfile.pm line 32.

ライン32は、$qr->execute();

+0

「ファイルが見つかりません」というゴブリングのバージョンです。 mysqlにそのディレクトリツリーを表示する権限がないか、ファイルが存在しません。 –

+0

ありがとうございますが、ファイルはありますが、パーマは正しいです.... – Will22

+0

ファイル名は 'open..v7' ... 2ドット、' open.v7' ...は1ドットですか? – mob

答えて

0

エラーコード2である可能性が高い「ファイルが見つかりません」です。

ファイルが存在しますか? PerlをMySQLデータベースとは別のホストで実行している場合、ファイルはクライアントホストではなくデータベースホスト上になければならないことに注意してください。

関連する問題