Hallo, (Datenbank Oracle9iR2)
ich habe ein Problem mit dem Aufruf einer stored procedure in php.
Sie sieht folgendermassen aus:
Diese Query sucht nach Zeilen in der Testtabelle die bis auf ein Feld vollkommen identisch sind. Jetzt habe ich in meiner Tabelle 2 Zeilen, die genau dies erfüllen. In SQL-Plus aufgerufen funzt die Procedur einwandfrei.
Es werden beide Zeilen ausgegeben.
Rufe ich nun die Procedur unter PHP auf, dann bekomme ich als Ausgabe immer nur eine Zeile. Hänge ich in der Procedur nun ein order by z asc oder order by z desc an, dann sehe ich je nach dem was gerade angehängt ist, den jeweiligen Satz. Also existieren beide, nur werden sie nicht zusammen ausgegeben.
Aufgerufen wird die procedur unter php wie folgt:
Kann mir jemand sagen warum ich immer nur eine Zeile angezeigt bekomme?
ich habe ein Problem mit dem Aufruf einer stored procedure in php.
Sie sieht folgendermassen aus:
PHP-Code:
create or replace p_test(test_cv in out sysrefcursor)
is
beginn
open test_cv for
select a.x,a.y,a.zspalte2 from test_tabelle a,test_tabelle b where
a.x=b.x and a.y=b.y and a.z<>b.z;
end p_test;
Es werden beide Zeilen ausgegeben.
Rufe ich nun die Procedur unter PHP auf, dann bekomme ich als Ausgabe immer nur eine Zeile. Hänge ich in der Procedur nun ein order by z asc oder order by z desc an, dann sehe ich je nach dem was gerade angehängt ist, den jeweiligen Satz. Also existieren beide, nur werden sie nicht zusammen ausgegeben.
Aufgerufen wird die procedur unter php wie folgt:
PHP-Code:
$curs_test = ocinewcursor($connection);
$check_test = OCIParse($connection,"begin p_test(:cv_inout);end;");
ocibindbyname($check_test,":cv_inout",&$curs_test,-1,OCI_B_CURSOR);
$result_check = @ociexecute($check_test,OCI_DEFAULT);
$result_curs = @ociexecute($curs_test,OCI_DEFAULT);
OCIFetchInto($curs_curr,$test_array,OCI_ASSOC);
echo "<pre>";
print_r($test_array);
echo "</pre>";
Kommentar