하나의 txt 파일을 Perl에서 SQL Server로 전송하려고 시도했지만 이제는 수백 개의 txt 파일을 결합한 SQL로 DB를 만들어야합니다. 이 작업을 수동으로 모든 txt 파일을 전송 저장하는 자동화 된 방법 있습니까? 하나의 txt 파일을 코딩하려고 시도합니다. 이 일을 위해 대량 삽입물을 사용해야한다고 생각하지만 어떤 코드를 사용해야하는지 확신 할 수 없습니다. 문제에 대한 조언은 정말 감사하겠습니다. 더 이상보고 싶은 코드가 있거나 구체적인 내용을 언급하는 것을 잊어 버린 경우 의견을 보내 주시면 수정하겠습니다. 고맙습니다.DBI를 사용하여 Perl에서 SQL Server로 가져올 많은 수의 txt 파일을 자동화하는 방법은 무엇입니까?
#!/usr/bin/perl -w
use strict;
use DBI;
use Carp;
# Connect to the data source and get a handle for that connection.
my $dbh = DBI->connect('dbi:ODBC:RegressionDBS') ||
confess "Connection Failed: $DBI::errstr";
# This query generates a result set with one record in it.
my $sql = "SELECT 1 AS test_col";
my $tablename = "RegressionTable";
open(FH, "newregression.txt") || die "cant open file";
my $Sqlh = $dbh->prepare("INSERT INTO RegressionTable (Ticker, TradeDate, HighPrice, LowPrice, TradePrice, TotalVolume, TotalValue) VALUES (?,?,?,?,?,?,?);") || confess $DBI::errstr;
while (my $line = <FH>)
{
$line =~/^(.*)(..)(..)$/;
my ($curTicker, $wTradeDate, $wHighPrice, $wLowPrice, $wTradePrice, $wTotalVolume, $wTotalValue);
$curTicker=$1
#$wTradeDate=
$wHighPrice=$2;
$wLowPrice=$1;
#$wTradePrice=$1;
#$wTotalVolume=$1;
#$wTotalValue=$4;
$Sqlh->execute($curTicker, $wTradeDate, $wHighPrice, $wLowPrice, $wTradePrice, $wTotalVolume, $wTotalValue) || confess $DBI::errstr;
}
$Sqlh->finish();
$dbh->disconnect();
그러면 각 txt 파일 이름을 입력 할 필요가 없습니까? 이 경우 300 + 파일 이름을 삽입해야합니까? 나는 이것을 할 수있는 가장 빠른 방법을 원했던가? 또한 필드 구분자를 더 이상 사용할 필요가 없으므로 더 이상 문제가되지 않습니다. 또한 로컬로 네트워크에 연결됩니다. 감사합니다 –
각 입력 파일의 이름을 지정할 필요는 없습니다. glob를 사용할 수 있습니다 :'my @files = glob '* .txt'; '그러면 위와 같이 @file의 각 파일을 반복합니다. – tarmarc