Miro: problem mit zugriff auf oracle procedure

Hallo,

habe ein Problem mit Zugriff auf eine stored procedure in Oracle.

$sql = "begin p_get.count_proc(:v_sec_id, :count_proc);end;";
              $result = oci_parse($con, $sql);

oci_bind_by_name($result, ":v_sec_id", $SEC_ID);
          OCIBindByName($result, ":count_proc", $count_proc);

oci_execute($result);

Die Prozedur funktioniert einwandfrei in Oracle, wirft aber einen Fehler über die Anwendung, wenn der Wert größer 9 ist, also zweistellig. Oracle sagt ORA-06502: PL/SQL: numeric or value error: character string buffer too small.

Da es in Oracle aber funktioniert, scheint irgendwas mit dem Aufruf über PHP nicht zu stimmen. Die gleiche Procedure funktioniert, wenn der Wert halt zwischen 0 und 9 liegt.

Was läuft hier falsch? Wie bekomme ich das in den Griff?

Danke,
der Miro

  1. Hallo,

    hab noch was vergessen:

    Der Rückgabewert ist übrigens number.

    Gruß,
    der Miro

  2. Hi,

    Die Prozedur funktioniert einwandfrei in Oracle, wirft aber einen Fehler über die Anwendung, wenn der Wert größer 9 ist, also zweistellig. Oracle sagt ORA-06502: PL/SQL: numeric or value error: character string buffer too small.

    Wie ist die Datenbankspalte definiert?

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Die Prozedur funktioniert einwandfrei in Oracle, wirft aber einen Fehler über die Anwendung, wenn der Wert größer 9 ist, also zweistellig. Oracle sagt ORA-06502: PL/SQL: numeric or value error: character string buffer too small.

      Wie ist die Datenbankspalte definiert?

      MfG ChrisB

      Hi,

      der Rückgabewert ist ein count, also er zählt einfach wieviel Einträge in einer Datenbanktabelle mit einem bestimmten Wert da sind. Der Rückgabewert ist dann Number.

      Gruß,
      der Miro