-1
create or replace PROCEDURE ResumenActividadDiaria(Fecha DATE) AS
CURSOR cur_trans IS
SELECT t.idslot, t.tipotransaccion, t.transacciongeneral, t.valortransaccion,
s.fila, s.columna
FROM transaccion t, slot s
WHERE t.idslot = s.idslot AND
t.transacciongeneral in (1,3) AND
t.fechacreacion = Fecha
ORDER BY s.fila, s.columna, t.tipotransaccion, t.transacciongeneral;
rs_trans cur_trans%ROWTYPE;
vlIdSlot NUMBER(10);
vlTipoTransaccion NUMBER(1);
vlTransaccionGeneral NUMBER(1);
vlValorTransaccion NUMBER(10);
vlFila NUMBER(2);
vlColumna NUMBER(2);
BEGIN
dbms_output.put_line('Fecha ');
dbms_output.put_line(' ------------------------------------------------------');
OPEN cur_trans;
FETCH cur_trans INTO rs_trans;
WHILE cur_trans%found
LOOP
FETCH cur_trans INTO rs_trans;
dbms_output.put_line('Id :' || rs_trans.vlIdSlot);
dbms_output.put_line('Fila :' || rs_trans.vlFila);
dbms_output.put_line('Columna :' || rs_trans.vlColumna);
IF vlTransaccionGeneral = 1 THEN
IF vlTipoTransaccion = 1 THEN
dbms_output.put_line('Billetes I :' || rs_trans.vlValorTransaccion);
END IF;
IF vlTipoTransaccion = 2 THEN
dbms_output.put_line('Monedas I :' || rs_trans.vlValorTransaccion);
END IF;
IF vlTipoTransaccion = 3 THEN
dbms_output.put_line('Premios I :' || rs_trans.vlValorTransaccion);
END IF;
IF vlTipoTransaccion = 4 THEN
dbms_output.put_line('Creditos I :' || rs_trans.vlValorTransaccion);
END IF;
END IF;
IF vlTransaccionGeneral = 3 THEN
IF vlTipoTransaccion = 1 THEN
dbms_output.put_line('Billetes F :' || rs_trans.vlValorTransaccion);
END IF;
IF vlTipoTransaccion = 2 THEN
dbms_output.put_line('Monedas F :' || rs_trans.vlValorTransaccion);
END IF;
IF vlTipoTransaccion = 3 THEN
dbms_output.put_line('Premios F :' || rs_trans.vlValorTransaccion);
END IF;
IF vlTipoTransaccion = 4 THEN
dbms_output.put_line('Creditos F :' || rs_trans.vlValorTransaccion);
END IF;
END IF;
END LOOP;
CLOSE cur_trans;
END;
나는 다음과 같은 오류가 위의 함수를 컴파일에 :Oracle 프로 시저가 컴파일되지 않습니다. 에 "가 발생 기호를, 기대 때 ..."제공 오류
Error(58,4): PLS-00103: Encountered the symbol ";" when expecting one of the following: loop
이 문제를 해결하기 위해 도와주세요.
그 오류는 그 절차에서 나온 것처럼 보이지 않습니다. 모든'end's는 올바르게 보이고, 58 행은 두번째'if' 섹션의 중간에 있습니다. 스크립트에서 하나 이상의 것을 만들고 있습니까? (다른 오류가 있지만, 당신은 결코'vl *'변수를 혼합하지 않을 것입니다 - 당신은 결코 설정하지 않았습니다 - 시작을 위해'rs_trans' 컬럼으로). –