包规范成功编译消息“SPBomPackage Compiled”但是在编译包体时我有两个错误,如下所示:“错误(17,6):PL / SQL:语句被忽略”和“错误(17) ,17):PLS-00302:组件'ITEM_ID'必须声明为“, 包规范,包体和我正在使用的这个包将使用的三个表被粘贴和格式化,以便您在此链接中查看:
答案 0 :(得分:1)
欢迎来到SO。如需将来参考,请在问题中发布代码。我们是一群懒惰的人。我不知道为什么,但我认为从连接中的两个表中重复的ITEM_ID列存在一些问题,然后%ROWTYPE似乎感到困惑。当我将游标更改为显式声明要返回的每个列时,如下所示,它已正确编译。
CURSOR c1
IS
SELECT bi.item_id, bi.item_desc, bi.item_category, bi.item_image,
ia.parent_item_id, ia.assembly_qty
FROM bicycle_item bi JOIN item_assembly ia ON bi.item_id =
ia.item_id
WHERE ia.parent_item_id = item_param_id;
答案 1 :(得分:0)
我认为此示例可以帮助您:
create or replace
PACKAGE PKG_YourPackage AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE sp_Test(InputTest in number, T_List OUT T_CURSOR);
END;
/
create or replace
PACKAGE BODY PKG_PKG_YourPackage as
PROCEDURE sp_Test(InputTest in number, T_List OUT T_CURSOR)
IS
BEGIN
OPEN T_List FOR
select
t1.*,t2.*
from
Table1 t1,
Table2 t2
where
t1.id = t2.Table1ID and
t1.id = InputTes ;
End sp_Test;
END;