PLS-00103: Begegnet das symbol "=" Wann erwarten Sie eine der folgenden:
Wenn ich versuche, erstellen Sie die folgende Prozedur im gettin dieser Fehler:"PLS-00103: Begegnet das symbol "=", wenn erwartet einen der folgenden Schritte aus:"
Ich kann nicht finden, wo ich falsch gelaufen ist, Helfen mir bei der Lösung dieses Problems.
create or replace PROCEDURE ProcName
(inTid IN VARCHAR2,outtxnstatus OUT CHAR,outrowcount OUT NUMBER,outretvalue OUT NUMBER) AS
CURSOR c1 IS
select TXN_STATUS from OP_TTERMINALMASTER where TERMINAL_ID = inTid and TXN_STATUS = 'N' FOR UPDATE OF TXN_STATUS;
outrowcount:= sql%rowcount;
BEGIN
if outrowcount = 1 then
Open c1;
fetch c1 into outtxnstatus;
update OP_TTERMINALMASTER set TXN_STATUS = 'Y' where current of c1;
outretvalue := 5;
CLOSE c1;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
outretvalue := -5;
END;
Sagt es, welche Symbole es war erwartet? Sagt Sie Sie eine Zeile/Spalte mit der Nummer?
Ihr sagen, wie dieses PLS-00103: Begegnet das symbol "=" Wann erwarten Sie eine der folgenden: Konstante Ausnahme <ein id>
Ihr sagen, wie dieses PLS-00103: Begegnet das symbol "=" Wann erwarten Sie eine der folgenden: Konstante Ausnahme <ein id>
InformationsquelleAutor user1 | 2012-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es ist hier (vor der
BEGIN
):Deklariert einen cursor an der richtigen Stelle, aber dann, bevor die
begin
Teil, den Sie trird zuweisensql%rowcount
sogar noch vor dem öffnen der cursor...Versuchen
wenn Sie erwarten, dass nur eine Zeile, dann brauchen Sie nicht eine explizite cursor (siehe meine aktualisierte Antwort). Wenn aus irgendeinem Grund Sie möchten einen cursor, verwenden, dann öffnen Sie den cursor zuerst und dann zählen, wie viele Zeilen, die Sie gefunden haben, aber immer noch, müssen Sie die Schleife auf den cursor
ich möchte cursor verwenden, weil ich zu Sperre, die eine bestimmte Zeile, die ich immer von "WÄHLEN Sie" ich möchte zu prüfen, für die Bedingung mit rowcount coz ich will nicht unnötig öffnen, der cursor, wenn seine o-Reihen betroffen, öffnen Sie den cursor für das abrufen von Daten nicht sinnvoll Recht. Wenn Sie eine Idee haben, bitte teilen.Danke.
Sie muss eine cursor - explizit oder implizit - wenn Sie möchten, um zu überprüfen, welche Zeilen betroffen sein. Da Sie gesperrt der Datensatz im code nur für das update, dann mit einem update-Befehl kann haben die gleiche Wirkung
danke und ich habe nicht dieses "dann mit einem update-Kommando kann den gleichen Effekt haben"
InformationsquelleAutor A.B.Cade