2014-01-09 1 views
1

Я пытаюсь использовать UNION заявление в DBI объединить два CSV файла:«Не удается найти имена таблиц в предложении FROM» ошибка с DBD :: CSV

#!/usr/bin/perl -w 

use strict; 
use DBI; 

my $dbh = DBI->connect ("dbi:CSV:") 
    or die "Cannot connect to the CSV file: $DBI::errstr()"; 
$dbh->{RaiseError} = 1; 
$dbh->{TraceLevel} = 0; 

my $query = "select * from file.csv UNION select * from output.csv"; 
my $sth = $dbh->prepare ($query); 
$sth->execute(); 
$sth->dump_results(); 
$sth->finish(); 
$dbh->disconnect(); 

Однако, я получаю следующее ошибки:

Невозможно найти имена таблиц в разделе FROM! на C: /Perl64/site/lib/SQL/Statement.pm строка 88.
DBD :: CSV :: db подготовить не удалось: не удается найти имена таблиц в предложении FROM! на C:/Perl64 /site/lib/SQL/Statement.pm строка 88.
[for Statement "select * from file.csv UNION select * from output.csv"] в CSV. pl. 15.
DBD :: CSV :: db prepare failed: не удается найти имена таблиц в предложении FROM! на C:/Perl64 /site/lib/SQL/Statement.pm строка 88.
[для оператора "выберите * из файла .csv UNION выберите * from output.csv"] в CSV. пл линия 15.

Я обновил SQL::Statement и SQL::Parse как предложено в другом месте, но это не исправить эту проблему. Я работаю на Windows 8.1. Что вызывает ошибки?

ответ

2

падение .csv расширений из запроса и убедитесь, что ваши файлы в текущей директории:

my $query = "select * from file UNION select * from output"; 

Вы также можете явно установить папку с CSV файлов,

my $dbh = DBI->connect ("dbi:CSV:", "", "", { 
    f_dir => 'C:\path_to_csv', 
}); 
+0

Я сделал то, что вы сказали, и я продолжаю получать ту же ошибку. – Brein

+0

@Brein проверить обновление –

+0

, что не работает – Brein

 Смежные вопросы

  • Нет связанных вопросов^_^