Knopf: Fehler mit einem Anweisungshandle vom DBI

Beitrag lesen

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?