1
2
3
4
5
6
7
8
9
10
my $sth = $self->{'orcl'}->getdatacursor("PACKAGE.Prozedur"); #Ein bereits bestehendes Modul für den Datenabruf.
my %row;
$sth->bind_columns( \( @row{ @{$sth->{NAME_lc} } } ));
my @colnames = @{$sth->{NAME_lc}}; #Spaltennamen
my $size = @colnames; #Anzahl der Spalten
while ($sth->fetchrow_array) {
#Hier speicher ich die Daten in einem Hash, weil sie später in ein JSON-Objekt ausgegeben werden sollen
}
$sth->bind_columns( \( @row{ @{$sth->{NAME_lc} } } ));
perldoc perlrefAs a special case, \(@foo) returns a list of references to the contents of @foo , not a reference to @foo itself. Likewise for %foo , except that the key references are to copies (since the keys are just strings rather than full-fledged scalars).
1
2
3
4
# Column binding is the most efficient way to fetch data
while ($sth->fetch) {
print "$region: $sales\n";
}
1 2 3 4 5 6 7 8 9 10
use Data::Dumper; # am beginn des Programms! ... ... ... my $DEBUG_ROW = 1; while ($sth->fetchrow_array) { $DEBUG_ROW and say Dumper(\%row); ... #Hier speicher ich die Daten in einem Hash, weil sie später in ein JSON-Objekt ausgegeben werden sollen }
2017-01-26T18:01:03 LinuxerIch hätte ach kein bind_columns benutzt.Ich erkenne keinen wirklichen Sinn darin, mit fetchrow_array() eine Liste von Ergebnissen anzufordern, wenn diese bereits durch bind_column() definierten Variablen zugeordnet worden sind.
Ich kann mir da sogar vorstellen, dass sich diese zwei Methoden ins Gehege kommen.
$sth->fetchall_arrayref({});
Quote# Column binding is the most efficient way to fetch data
while ($sth->fetch) {
print "$region: $sales\n";
}
QuoteOk danke, aber dann habe ich am Anfang meines JSON-Strings ja direkt ein [ ?! Ich dachte das ist nicht 'JSON-Konform' weil es mit einem { beginnen kann/soll?
1
2
3
4
%rec_hash = ('status' => 'success');
my $ref = $sth->fetchall_arrayref({});
%rec_hash = (%rec_hash, 'data' => $ref);
$jsonOutput = to_json (\%rec_hash);
1
2
3
4
%rec_hash = ('status' => 'success');
my $ref = $sth->fetchall_arrayref({});
%rec_hash = (%rec_hash, 'data' => $ref);
$jsonOutput = to_json (\%rec_hash);
1 2 3
For example, to fetch all fields of every row as a hash ref: $tbl_ary_ref = $sth->fetchall_arrayref({});