我创建了以下程序但是它给出了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;
/
答案 0 :(得分:0)
如果SEA_USER
架构不存在或您无法访问它,则在尝试创建列出的过程时会收到ORA-01031: insufficient privileges
错误。如果程序的主体有效,我就看不出它为什么不能编译。
鉴于此,如果您在尝试调用存储过程时收到ORA-06550
错误,那么我只能想到两种可能性:
您正在调用该过程
除SEA_USER
以外的模式
没有合适的
授予允许权限的权限
调用另一个用户的程序。
尚未创建过程
SEA_USER
架构。
您能否向我们提供一个如何调用存储过程并确认您正在使用的用户的示例?