как исправить ошибку 'PLS-00103: обнаружен символ' в pl / sql - PullRequest
0 голосов
/ 02 мая 2019

Я создал программный модуль с двумя программными модулями, функцией и процедурой, но я получаю ошибку "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;
    /
...