私はWindows上でActiveStateによって構築されたPerlv5.12.3を使用しています。DBD::Oracleバージョン1.27。DBIバージョン1.616。以下のデータをこの特定の順序で選択し、結果のデータを同じ順序で取得したいと考えています。以下は、コードサンプルといくつかの例です。
SQLスニペット(以下の$ report_sqlの内容)
select student_number, lastfirst, counselor,
a.dateenrolled as "Date Enrolled 1", a.dateleft as "Date Left 1", a.termid as "Term ID 1", a.course_number as "Course Number 1",
a.expression as "Expression 1", b.dateenrolled as "Date Enrolled 2", b.dateleft as "Date Left 2",
b.termid as "Term ID 2", b.course_number as "Course Number 2", b.expression as "Expression 2"
Perlコードスニペット
## run the resulting query
my $report_result = $dbh->prepare( $report_sql );
$report_result->execute();
while( my $report_row = $report_result->fetchrow_hashref())
{
print Dumper(\$report_row); ## contents of this posted below
$report_rowの印刷ダンパーの内容
$VAR1 = \{
'Expression 2' => 'x',
'LASTFIRST' => 'xx',
'Term ID 1' => 'xx',
'Date Enrolled 2' => 'xx',
'Course Number 1' => 'xx',
'Term ID 2' => 'xx',
'STUDENT_NUMBER' => 'xx',
'Date Left 2' => 'xx',
'Expression 1' => 'xx',
'COUNSELOR' => 'xx',
'Date Left 1' => 'xx',
'Course Number 2' => 'xx',
'Date Enrolled 1' => 'xx'
};
注文私はそれが印刷されることを期待しました
$VAR1 = \{
'STUDENT_NUMBER' => 'xx',
'LASTFIRST' => 'xx',
'COUNSELOR' => 'xx',
'Date Enrolled 1' => 'xx',
'Date Left 1' => 'xx',
'Term ID 1' => 'xx',
'Course Number 1' => 'xx',
'Expression 1' => 'xx',
'Date Enrolled 2' => 'xx',
'Date Left 2' => 'xx',
'Term ID 2' => 'xx',
'Course Number 2' => 'xx',
'Expression 2' => 'x'
};
注意すべきことの1つは、実行されているこのクエリは、実行されている多くのクエリの1つであるということです。この特定のスクリプトは一連のクエリを実行し、返された結果に基づいてレポートを生成します。クエリは、perlスクリプトと一緒にhdのファイルに保存されます。クエリが読み込まれ、実行されます。常に同じ列が選択されているとは限りません。