PLSQL错误PLS-00302

时间:2010-09-09 08:17:23

标签: oracle10g

我创建了以下程序但是它给出了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 :(得分:0)

如果SEA_USER架构不存在或您无法访问它,则在尝试创建列出的过程时会收到ORA-01031: insufficient privileges错误。如果程序的主体有效,我就看不出它为什么不能编译。

鉴于此,如果您在尝试调用存储过程时收到ORA-06550错误,那么我只能想到两种可能性:

  1. 您正在调用该过程 除SEA_USER以外的模式 没有合适的 授予允许权限的权限 调用另一个用户的程序。

  2. 尚未创建过程 SEA_USER架构。

  3. 您能否向我们提供一个如何调用存储过程并确认您正在使用的用户的示例?