1

次のプロシージャを作成しようとすると、次のエラーが発生します:「PLS-00103: 次のいずれかを期待しているときに、記号「=」が発生しました:」どこで間違ったのかわかりません。この問題の解決を手伝ってください。

 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;
4

1 に答える 1

3

ここにあると思います(の前BEGIN):

outrowcount:= sql%rowcount;

適切な場所でカーソルを宣言しましたが、カーソルを開く前beginに割り当てようとした部分の前sql%rowcountに...

試す

 create or replace PROCEDURE  ProcName
(inTid IN VARCHAR2,outtxnstatus OUT CHAR,outrowcount OUT NUMBER,outretvalue OUT NUMBER) AS

   BEGIN

     update OP_TTERMINALMASTER set TXN_STATUS = 'Y'
      where TERMINAL_ID = inTid and TXN_STATUS = 'N';

     outrowcount:= sql%rowcount;

      outretvalue := 5;
   EXCEPTION
    WHEN NO_DATA_FOUND THEN
      outretvalue := -5;
   END;
于 2012-11-06T06:07:38.813 に答える