Я создал программный модуль с двумя программными модулями, функцией и процедурой, но я получаю ошибку "PLS-00103: обнаружен символ"
Тело пакета PROD_PKG скомпилировано
LINE /ОШИБКА COL
8/5 PLS-00103: Обнаружен символ «IS» при ожидании одного из следующих действий: начало конец функция прагма тип подтипа текущий тип удаления курсора существует до 22/5 PLS-00103:Обнаружен символ «ПРОЦЕДУРА» при ожидании одного из следующих действий: конец не прагма конечный экземплярный порядок, переопределяющий статическую карту конструктора члена Символ «статический» был заменен на «ПРОЦЕДУРА» для продолжения.40/5 PLS-00103: Обнаружен символ «НАЧАЛО» при ожидании одного из следующих действий: конец, не прагма, конечный инстанцируемый порядок, переопределяющий статическую карту конструктора элемента. Ошибки: проверьте журнал компилятора
CREATE OR REPLACE PACKAGE Prod_pkg
AS
FUNCTION stk_pf
( p_id IN BB_PRODUCT.idproduct%TYPE )
RETURN NUMBER;
PROCEDURE stkup_pp
( p_id IN BB_PRODUCT.idproduct%TYPE,
p_qty IN NUMBER );
END;
/
CREATE OR REPLACE PACKAGE BODY Prod_pkg
AS
FUNCTION stk_pf
( p_id IN BB_PRODUCT.idproduct%TYPE )
RETURN NUMBER;
IS
lv_stk_num BB_PRODUCT.stock%TYPE;
BEGIN
SELECT stock
INTO lv_stk_num
FROM BB_PRODUCT
WHERE id_product = p_id;
RETURN lv_stk_num;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
END stk_pf;
PROCEDURE stkup_pp
(
p_id IN BB_PRODUCT.idproduct%TYPE,
p_qty IN NUMBER
)
IS
lv_stk_num BB_PRODUCT.stock%TYPE;
BEGIN
lv_stk_num := stk_pf(p_id);
IF lv_stk_num >= p_qty THEN
UPDATE BB_PRODUCT
SET stock = stock - p_qty
WHERE idproduct = p_id;
COMMIT;
ELSE
DBMS_OUTPUT.PUT_LINE('Insufficient Stock');
END IF;
END stkup_pp;
END;
/