0

包规范成功编译并显示消息“SPBomPackage Compiled”但是在编译包主体时我有两个错误,它们如下所示,“错误(17,6):PL/SQL:语句被忽略”和“错误(17,17) : PLS-00302: component 'ITEM_ID' must be declared" ,包规范、包主体和我使用的三个表将使用这个包被粘贴和格式化,以便你在这个链接上查看:

4

2 回答 2

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;
于 2013-11-09T03:35:24.717 回答
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;
于 2013-11-09T05:02:52.767 回答