Hallo zusammen
Ich bin verzweifelt auf der Suche nach einer Lösung zu meinem Oracle Problem. Zwar tritt bei mir, leider nur teilweise, die gleiche Oracle Fehlermeldung auf. Der Fehler tritt, wenn er auftritt, immer beim Ausführen einer Stored Procedure auf. Folgende Fehlermeldung erscheint:
Eine Beispiel Funktion, bei der dieser Fehler häufig auftritt:
Was ich schon feststellen konnte ist, dass der Fehler nur bei Funktionen mit Rückgabewert auftritt. Also der Rückgabewert bei dieser Zeile:
Was zudem seltsam ist, wenn der Fehler wieder auftritt und ich danach das PHP File wieder neu auf den Apache stelle, tritt er in 90% der Fälle nicht mehr auf. Aber leider funktioniert diese dann nicht für immer einwandfrei.
Was könnte hier das Problem sein? Der Parameter der die Grösse der Rückgabe angibt ist genügend gross.
Wäre sehr dankbar für Tipps und Hilfe.
Ich bin verzweifelt auf der Suche nach einer Lösung zu meinem Oracle Problem. Zwar tritt bei mir, leider nur teilweise, die gleiche Oracle Fehlermeldung auf. Der Fehler tritt, wenn er auftritt, immer beim Ausführen einer Stored Procedure auf. Folgende Fehlermeldung erscheint:
Fehler-Nr: 2
oci_execute() [function.oci-execute]: ORA-06550: line 1, column 41: PLS-00103: Encountered the symbol "" when expecting one of the following: (-+ case mod new not null others <an identifier> <a double-quoted delimited-identifier><a bind variable> avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date <a string literal with character set specification> <a number> <a single-quoted SQL string> pipe <an alternaively-quoted string literal with character set specific
oci_execute() [function.oci-execute]: ORA-06550: line 1, column 41: PLS-00103: Encountered the symbol "" when expecting one of the following: (-+ case mod new not null others <an identifier> <a double-quoted delimited-identifier><a bind variable> avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date <a string literal with character set specification> <a number> <a single-quoted SQL string> pipe <an alternaively-quoted string literal with character set specific
Code:
function f_5529_updateNewsData($pr_DBHandle, $pvn_NewsID = 0, $pa_Data, $pvc_UpdateCode)
{
// Variablen deklarieren
$lr_PrcHandle = null;
$lvc_Return = "";
$lvc_CART = "1";
// Parameter überprüfen: DB-Verbindung angegeben?
if (isset($pr_DBHandle))
{
// Ja: DB-Verbindung wurde angegeben
// Prozeduraufruf parsen
$lr_PrcHandle = oci_parse($pr_DBHandle, "begin KBI_3015_registerNews_PRC(:NewsID,
:Status,
:CART,
:Bez1,
:Bez2,
:Bez3,
:Bez4,
:GiltAb,
:GiltBis,
:Titel,
:ErrorMessage); end;");
// Variablen verknüpfen
oci_bind_by_name($lr_PrcHandle, ":NewsID", $pvn_NewsID);
oci_bind_by_name($lr_PrcHandle, ":Status", $pvc_UpdateCode);
oci_bind_by_name($lr_PrcHandle, ":CART", $lvc_CART);
oci_bind_by_name($lr_PrcHandle, ":Bez1", $pa_Data['txt_nws_deutsch']);
oci_bind_by_name($lr_PrcHandle, ":Bez2", $pa_Data['txt_nws_franzoesisch']);
oci_bind_by_name($lr_PrcHandle, ":Bez3", $pa_Data['txt_nws_italienisch']);
oci_bind_by_name($lr_PrcHandle, ":Bez4", $pa_Data['txt_nws_englisch']);
oci_bind_by_name($lr_PrcHandle, ":GiltAb", $pa_Data['txt_nws_giltab']);
oci_bind_by_name($lr_PrcHandle, ":GiltBis", $pa_Data['txt_nws_giltbis']);
oci_bind_by_name($lr_PrcHandle, ":Titel", $pa_Data['txt_nws_titel']);
oci_bind_by_name($lr_PrcHandle, ":ErrorMessage", $lvc_Return, 32, SQLT_CHR);
// Prozeduraufruf ausführen
oci_execute($lr_PrcHandle);
// Prozeduraufruf löschen
oci_free_statement($lr_PrcHandle);
}
// Ergebniscode zurückgeben
return $lvc_Return;
}
PHP-Code:
oci_bind_by_name($lr_PrcHandle, ":ErrorMessage", $lvc_Return, 32, SQLT_CHR);
Was könnte hier das Problem sein? Der Parameter der die Grösse der Rückgabe angibt ist genügend gross.
Wäre sehr dankbar für Tipps und Hilfe.

Kommentar