Ошибка PLSQL PLS-00302 - PullRequest
       7

Ошибка PLSQL PLS-00302

0 голосов
/ 09 сентября 2010

Я создал ниже процедуру, но она дает ошибку PLS-00302.Заранее спасибо:)

ORA-06550: строка 11, столбец 12: PLS-00302: должен быть объявлен компонент 'GET_LATEST_LSR_TRANSACTION' ORA-06550: строка 11, столбец 3: PL / SQL: операторигнорируется

CREATE OR REPLACE procedure SEA_USER.Get_Latest_LSR_Transaction (tn IN VARCHAR2, pon OUT VARCHAR2, duedate OUT TIMESTAMP)
IS
    trans_oid NUMBER(10) := 0;
    foc_trans_oid NUMBER(10) := 0;

BEGIN
    SELECT TRANS_OID INTO trans_oid FROM SEA_LSR_TN WHERE tn BETWEEN STARTTN AND ENDTN;

    SELECT MAX(T.OID) INTO foc_trans_oid FROM SEA_LSR_TRANS T, SEA_LSR_TXEVENT_HISTORY H WHERE T.OID IN (trans_oid) AND T.OID = H.TRANS_PARENT_OID AND H.EVENT_CODE IN ('focaccept', 'suppaccept') AND T.REQTYP = 'CB';

    IF foc_trans_oid != 0 
    THEN
        SELECT PON, DUEDATE INTO pon, duedate FROM SEA_LSR_TRANS WHERE OID = foc_trans_oid;
    ELSE
        SELECT PON, DUEDATE INTO pon, duedate FROM SEA_LSR_TRANS WHERE OID = trans_oid;
    END IF;
END;
/

1 Ответ

0 голосов
/ 09 сентября 2010

Если схема SEA_USER не существует или у вас нет к ней доступа, вы получите ошибку ORA-01031: insufficient privileges при попытке создать процедуру, которую вы перечислили. При условии, что тело процедуры допустимо, я не вижу причин, по которым она не будет скомпилирована.

Учитывая это, если вы получаете сообщение об ошибке ORA-06550 при попытке вызвать хранимую процедуру, то у меня есть только две возможности:

  1. вы вызываете процедуру из схема, отличная от SEA_USER, которая не имеет соответствующего разрешения, предоставленные, чтобы позволить ему вызвать процедуру другого пользователя.

  2. процедура не была создана в SEA_USER схема.

Можете ли вы предоставить нам пример того, как вы вызываете хранимую процедуру, а также подтвердить пользователя, которого вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...