Thread Oracle - nicht alle Zeilen werden selektiert (33 answers)
Opened by DataMan at 2017-01-26 11:41

Gast DataMan
 2017-01-26 11:41
#185939 #185939
Hallo,

ich habe eine Oracle-Datenbank in der mehrere Packages mit Prozeduren liegen die großteils einfach SELECT-Statemens beinhalten.

Ich mache das ganze so:
Code: (dl )
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
}


Nun bekomme ich z.B. bei einer Prozedur die mehr als 100 Zeilen selektiert nur ca. 5 Zeilen als Ergebnis.
Mache ich das hier:
Code: (dl )
1
2
3
while ( my $zeile = $sth->fetchrow_hashref ){
push @rec_hash, $zeile;
}


Hier kommen alle Zeilen 'richtig' an.
Sollte ich auf meine Variante einfach verzichten? Ich hab auf mehreren Seiten gelesen das ein bind_columns die schnellste und beste Variante ist und fetchrow_hashref eher nicht so optimal ist?!

Vielen Dank
Last edited: 2017-01-26 12:08:55 +0100 (CET)

View full thread Oracle - nicht alle Zeilen werden selektiert