入力としてファイルを取り、その中にPL/SQL(ステートメントとDBMS_OUTPUT.PUT_LINE
)を含むPerlスクリプトがあります。データベース接続を実行し、そのファイルを Perl スクリプトで実行する必要があります。pl/sql には、コンマ (DBMS_OUTPUT.PUT_LINE) を使用して区切られた 3 つの列のデータを書き込む for ステートメントを使用して、開始宣言終了セクションがあります。私は以下を試しました。それが正しいか?
my $dbh = DBI->connect( "dbi:Oracle:$db", $username, $passwd ) ||
die( $DBI::errstr . "\n" );
$dbh->{AutoCommit} = 0;
$dbh->{PrintError} = 1;
open FILE, $sql_file or die "Could not open file";
$query = '';
while($line = <FILE>) {
chomp($line);
$query .= $line;
}
my $sth = $dbh->prepare($query);
$sth->execute();
while ( my @row = $sth->fetchrow_array() ) {
foreach (@row) {
print "$_";
}
print "\n";
}