Bezeichner muss deklariert werden ORA-06550 und PLS-00201
Ich habe zwei Datenbanken, eine ist im lokalen server;
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
"CORE 11.1.0.7.0 Production"
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
Den anderen einen VM :
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Alles, was über diese Server sind identisch.
Ich bin DBA für beide Server. Alle Tabellen und gespeicherte Prozeduren und sind in Ordnung, die in beiden Datenbanken, aber eine gespeicherte Prozedur funktioniert nicht, wenn Asp.net versucht sich zu verbinden.
Wenn ich meine Asp.net app, die den Anschluss an die VM-Datenbank bekomme ich folgende Fehlermeldung sagt mir, dass die gespeicherte Prozedur muss deklariert werden :
Message: Sys.WebForms.PageRequestManagerServerErrorException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'GETINFO' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Öffne ich mein SQL Developer-und debug-Verfahren auf der VM-Datenbank, und ich bekomme die gewünschten Werte ein.
Es ist nur passiert .Die Netto-app, wenn ich versuchen zu bekommen, dass eine bestimmte gespeicherte Prozedur. Alles andere, als all die anderen gespeicherten Prozeduren funktionieren.
Was ich getan habe um das Problem zu lösen;
- Änderte den Namen der Prozedur (nicht Arbeit)
- Überprüft das schema, um sicherzustellen, dass alle Tabellen und gespeicherten Prozeduren gehört zum richtigen Benutzer (Sie gehören zu richtigen Benutzer)
- Ich Zugriff auf Benutzer zu, selbst wenn die gespeicherte Prozedur erstellt, die von diesem Benutzer.
- Ich gelöscht und neu erstellt die gespeicherte Prozedur
- Ich verwendet
Myuser.storedprocedure
name-notation es hat nicht funktioniert
Was ich nicht verstehe, ist, dass genau die gleiche code funktioniert auf lokalen und Netzwerk, und auch, dass ich Debuggen kann die gespeicherte Prozedur mithilfe der Oracle SQL Developer.
Kann ich teilen die gespeicherten Produkt hier, aber es ist wirklich, wirklich lang.
Wie kann ich dieses Problem beheben?
- Können wir sehen, dass die relevanten Teile des Codes und/oder die Funktion sich selbst aufrufen? Verwenden Sie die exakt gleiche ODBC-connector für die Anwendung? Wenn alle Dinge sind identisch, die auf der DB-Ebene, dann haben wir einen Blick auf die Anwendung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie Ihre Verbindungszeichenfolge und stellen Sie sicher, dass Sie anrufen, die richtige Datenbank-und/oder Schemanamen aus C# - Anwendung.
Wenn alle anderen gespeicherten Prozeduren arbeiten gut, und das spezifische-nicht gut, wenn Sie debug auf oracle sql developer; er muss sein Problem. Wenn es debuggt und arbeiten auf beiden Datenbanken unter DBA-Konto sollte es keine Berechtigungsprobleme sowie.
Ich denke, wenn Sie sich auf die Verbindung als mmmmmpie sagte in seinem Kommentar, Sie sollten finden das Problem.
Sie diese Fehlermeldung bekommen, da Sie nicht genügend Berechtigungen zum ausführen der gespeicherten Prozedur. Versuchen Sie zum erteilen von Berechtigungen auf der Benutzerebene (user-level bedeutet, durch die Anmeldeinformationen, die Sie verbinden auf die Datenbank. Schauen Sie in Ihre config-Datei).
Ich hab das gleiche Problem. Ich erstellt eine gespeicherte Prozedur in einer Oracle-DB. Ich habe ausgeführt, es erfolgreich kompiliert wurde. Aber, es war die erste Ausgabe zur Laufzeit. Nach der Erteilung von Berechtigungen auf Benutzer-Ebene für die gespeicherte Prozedur wird dann das Problem gelöst völlig.
Wir haben diesen Fehler bei der Installation des neuen java-code in unsere Maschine, die war, den Aufruf der Oracle-Paket ,
Immer Fehler wie
Wir waren nicht einmal in der Lage zu wissen, welche userid er auslösen, da hatten wir Dev-Zugang , Beteiligt DBA überprüft die Funktion, die ids, Zugang , Zusammenstellung des Pakets und alle keine Probleme identifiziert.
Später durch den Umschlag-team kennengelernt haben wir die Brieftasche ersetzt, der mit verschiedenen userid, die nicht über Zugriff auf Paket-und korrigiert die userid in der wallet-Datei
Meisten der Zeit, wird das Problem userid nicht zugreifen , Wenn Sie die Auslösung von java oder anderen Anwendungen, überprüfen Sie die Verbindungszeichenfolge ,
Holen Sie sich apprpiate Zugang für userid