stored procedure funzt in php nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • stored procedure funzt in php nicht

    Hallo, (Datenbank Oracle9iR2)

    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.and a.y=b.and a.z<>b.z;
    end p_test
    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:
    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>"
    Kann mir jemand sagen warum ich immer nur eine Zeile angezeigt bekomme?

  • #2
    Re: stored procedure funzt in php nicht

    Original geschrieben von galaxy2
    Kann mir jemand sagen warum ich immer nur eine Zeile angezeigt bekomme?
    weil du dein
    PHP-Code:
    OCIFetchInto($curs_curr,$test_array,OCI_ASSOC
    nur einmal benutzt ... wie wär es mit while() ?
    Kissolino.com

    Kommentar

    Lädt...
    X