当前位置: 首页 > 知识库问答 >
问题:

编译Oracle包体时出错

徐俊人
2023-03-14

包规范成功地编译了消息“SPBomPackage Compiled”,但在编译包体时,我有两个错误,它们是“错误(17,6):PL/SQL:忽略语句”和“错误(17,17):PLS-00302:必须声明组件‘ITEM\u ID’”,包规范,包体,我使用的三个表格,这个软件包将使用,粘贴和格式很好,您可以在这个链接查看:

共有2个答案

钱劲
2023-03-14

我认为此示例可以帮助您:

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;
田志尚
2023-03-14

欢迎来到SO。为了将来参考,请在问题中张贴代码。我们是一群懒惰的人。我不知道为什么,但我认为两个表中的重复ITEM\u ID列在连接中出现了一些问题,然后%行类型似乎变得混乱了。当我将游标更改为显式声明每个要返回的列时,如下图所示,它编译正确。

  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;
 类似资料:
  • 我是ANT build新手,在编译ANT build时遇到错误“package org.testng.annotations不存在”和“package org.openqa.selenium不存在”。xml。 这里是build.xml 下面是错误列表 我还设置了JAVA\u HOME C:\Program Files\JAVA\jdk1.7.0\u 25\bin和ANT\u HOME C:\Use

  • 问题内容: 我正在尝试使用Windows 7 Ultimate x64 安装bycrpt 。这是我的安装日志: 我已经安装了Python <v2.7和.NET Framework SDK 2.0。我还下载了一个名为win7sdkx64.exe的程序包,我认为这是Visual Studio的sdk。我喜欢我的所有依赖项,如下所示: 但我仍然遇到这些错误。我接下来可以尝试什么?完全安装Visual S

  • 我正试着反编译MCP9.40到《我的世界》1.12。但是当我运行反编译。bat时,它会返回以下错误。 https://hastebin.com/itefigucaz.bash 我环顾四周,发现可能是反编译程序的RAM用完了,所以我编辑了mcp.cfg文件,并从这里修改了一行。 对此。 但也会产生同样的错误。有什么想法吗?

  • Ubuntu是基于Debian Linux, 使用dpkg包挂利器来管理软件像deb. apt程序是用来管理dpkg仓库, 跟zypper和yum使用RPM是一样的. 下面的步骤将会展示如何安装deb. 安装dpkg-dev包. 这个包提供开发工具(包括dpkg-source), 用来unpack, 编译, 和上传Debian源码包. sudo apt-get install dpkg-dev 如

  • SUSE也利用RPM包管理器来软件管理就像RedHat发行版一样. 尽管都使用RPM作为基础的软件管理, SLES使用zypper来管理软件包仓库, CentOS使用yum. SLES是一个硬核的企业发行版. 尽可能使用预编译包, 但是如果你感到勇敢, 想要你的手变脏, 这一节为你准备. 在SLES上编译FreeRADIUS的RPM包, 要比CentOS或者Ubuntu徐璈更多的努力. 添加一个O