Hallo!
Ich schreibe momentan eine Anwendung in Perl.
Mit Hilfe des DBI greife ich auf eine Oracle-Datenbank zu.
Leider komme ich mit einem Fehler ganz und gar nicht zurecht.
Nachfolgend ein kleiner Ausschnitt (die Verbindung zur Datenbank ist in einem anderen Programmteil hergestellt worden!
sub lab_phase
{
my ($clone_name) = @_;
$query = "select id, TO_char(started_at, 'dd.mm.yy hh24.mi.ss') ";
$query .= "from t_esdoc_eseries, t_esdoc_eseries_link ";
$query .= "where subject_id = '$clone_name' ";
$query .= "and id = eseries_id and name = 'LAB-PHASE' ";
$query .= "order by started_at ";
$sth = $dbh ->prepare($query);
$sth ->execute();
#nach diesem select erhält man die eseries_ids nach dem Datum aufsteigend sortiert
# Bsp: ID TO_CHAR(STARTED_A
#-------------------------------- -----------------
#808080808080808080808080808086D0 24.07.01 14.18.43
#80808080808080808080808080908A34 09.11.01 08.12.53
while ($data = $sth ->fetchrow_hashref())
{
$eseries_id = $data -> {"id"};
&agro_transfer($eseries_id) #jetzt wird eine bestimmte eseries_id verwendet, sie wird in agro_transfer und agro_transfer_check übergeben
}
}
sub agro_transfer
{
my ($eseries_id) = @_;
@recs = ();
$query = "select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss') ";
$query .= "from t_esdoc_estep, t_esdoc_watched ";
$query .= " where eseries_id = '$eseries_id' and owner_id = t_esdoc_estep.id ";
$query .= "and name = 'AGRO-TRANSFER' ";
$query .= "order by created_at ";
$sth = $dbh->prepare($query);
$sth -> execute();
....
so, nun mein Problem. Also ich bekomme immer eine Fehlermeldung an der Stelle, wo die Schleife aufgerufen wird und ich ins hashref schreiben möchte:
</head><body>DBD::Oracle::st fetchrow_hashref failed: ERROR no statement executing (perhaps you need to call execute first) [for statement ``select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss') from t_esdoc_estep, t_esdoc_watched where eseries_id = '' and owner_id = t_esdoc_estep.id and name = 'AGRO-TRANSFER' order by created_at '' with params: ]) at tratest line 164.
Ich habe festgestellt, dass der untere Query-Befehl ausgeführt wird (oder vielmehr es wird versucht!!!)
Hätte jemand eine Idee, warum das so ist?