私はPerlとDBIで小さなスニペットを書いています(SQLite yay!)
クエリが実行されるテーブル名と同じファイル名を持つテキストファイルにいくつかの特定のクエリを記録したいと思います。
結果をテキストファイルにダンプするために使用するコードは次のとおりです。
sub dumpResultsToFile {
my ( $query ) = @_;
# Prepare and execute the query
my $sth = $dbh->prepare( $query );
$sth->execute();
# Open the output file
open FILE, ">results.txt" or die "Can't open results output file: $!";
# Dump the formatted results to the file
$sth->dump_results( 80, "\n", ", ", \*FILE );
# Close the output file
close FILE or die "Error closing result file: $!\n";
}
これが私がこれを呼ぶ方法です:
dumpResultsToFile ( <<" END_SQL" );
SELECT TADA.fileName, TADA.labelName
FROM TADA
END_SQL
私が効果的に望んでいるのは、「results.txt」(上記でハードコードされている)に移動する代わりに、「TADA.txt」に移動する必要があることです。
これがテーブル「HAI」と「LOL」の間の結合である場合、結果セットは「HAI.LOL.txt」に書き込まれる必要があります。
私が言っていることは、DBIで魔法を使っても可能ですか?
テーブルのSQLクエリを解析せずに実行したいのですが、 SQLクエリでソーステーブル名を取得するために広く使用され、デバッグされた関数がある場合は、それも機能します。
私が欲しいのは、それがどのクエリ出力を保持しているかについてのヒントを与えるファイル名を持っていることです。今のところ、テーブル名に基づいて分類するのは良い方法のようです。