Проблема SQL в Oracle с процедурой - PullRequest
0 голосов
/ 05 января 2019

У меня возникли проблемы с процедурой, и я не могу найти решения. Некоторая ошибка в конце цикла.

У вас есть идея решить эту проблему?

Пожалуйста, найдите прикрепленный файл со скриншотом ошибки.

CREATE OR REPLACE PROCEDURE PR_GEN_TRANSAKCJI
IS
KL NUMBER;
ZN NUMBER;
L_POZ NUMBER;
POK NUMBER;
CE NUMBER;
CZP NUMBER;
DNI NUMBER;
POZ NUMBER;


BEGIN

KL :=FN_LOSUJ_KLIENTA();
SELECT ZNIZKA
INTO ZN
FROM KLIENT
WHERE ID_KLIENTA=KL;

INSERT INTO FAKTURA (ID_FAKTURY, DATA_WYSTAWIENIA_FAKTURY, WARTOSC_FAKTURY, 
WARTOSC_FAKTURY_PO_ZNIZCE, ID_KLIENTA, WARTOSC_ZNIZKI) VALUES
(SEQUENCE_FAKTURA.NEXTAL, SYSDATE, 0, 0, KL, ZN);

 LICZNIK :=0;
L_POZ :=FN_LOSUJ_POKOJ();
SELECT CENA_ZA_DOBE
INTO CE
FROM TYP_POKOJU, POKOJ
WHERE POK=POKUJ.NR_POKOJU AND POKOJ.ID_TYPU_POKOJU = 
TYP_POKOJU.ID_TYPU_POKOJU;
DNI :=FN+LOSUJ(1,5);
CZP :=DNI*CE;
POZ :=LICZNIK + 1;

INSERT INTO FAKTURA_DETALE (POZYCJA, CENA_ZA_POKOJ, ID_FAKTURY, NR_POKOJU, 
LICZBA_DNI) VALUES (POZ, CZP, SEQUENCE_FAKTURA.CURRVAL, POK, DNI);
LICZNIK := LICZNIK = 1;
EXIT WHEN LICZNIK > L_POZ;
END LOOP;
END;
/

Спасибо за вашу помощь!

enter image description here

1 Ответ

0 голосов
/ 05 января 2019

Вы должны были попробовать SHOW ERRORS для отладки вашего вывода, так как это самая удобная функция. вы пропустили LOOP оператор начала, исправьте это, так как в вашем коде есть только END LOOP

ИДК, где вы хотите начать цикл. Предположение, что вы выходите из какого-то значения, связывающего другие значения, которыми манипулируют в начале самого начала, поэтому можете попробовать поставить BEGIN LOOP ..... END LOOP

...