Sql Oracle数据库错误(3,3):PLS-00103:遇到符号;“开始”;当需要以下选项之一时:语言
我不熟悉Oracle SQL,我尝试编写一个新的包。 然而我得到这个错误,在这个网站上搜索解决方案后,我仍然不明白错误是什么。 请帮我解决这个问题。Sql Oracle数据库错误(3,3):PLS-00103:遇到符号;“开始”;当需要以下选项之一时:语言,sql,oracle,Sql,Oracle,我不熟悉Oracle SQL,我尝试编写一个新的包。 然而我得到这个错误,在这个网站上搜索解决方案后,我仍然不明白错误是什么。 请帮我解决这个问题。 谢谢。您的错误是,您试图将一个包头装入板条箱,并将程序主体包含在其中 包装有标题(或规格)和主体。标题仅包括要从外部世界(包的)访问的过程/函数/类型/变量的签名 除其他事项外,该机构还包括程序/职能的实施 要解决您的问题,请在包标题中只保留过程的说明,并将详细信息放在包正文中 希望这能解决您的问题。正如@FDavidov提到的,您需要 a包装规格
谢谢。您的错误是,您试图将一个包头装入板条箱,并将程序主体包含在其中 包装有标题(或规格)和主体。标题仅包括要从外部世界(包的)访问的过程/函数/类型/变量的签名 除其他事项外,该机构还包括程序/职能的实施 要解决您的问题,请在包标题中只保留过程的说明,并将详细信息放在包正文中
希望这能解决您的问题。正如@FDavidov提到的,您需要 a
包装规格
零件
及
必须将当前代码保存在包体中
以
将包体监视器Flussi创建或替换为…
在Oracle中,错误出现的位置有时可能会令人困惑。由于第一行上的创建或替换软件包
和监视器Flussi as
之间缺少正文
关键字而导致的错误。在那里添加body
之后,您将得到
错误(1,14):PLS-00201:必须声明标识符“MONITORFLUSSI”
错误(1,14):PLS-00304:无法编译“MONITORFLUSSI”的主体
没有它的规格
然后在包装的主体部分
之外创建一个规格部分
,并
在主体部分
中,您需要将列值返回到某个变量
通过插入子句
或光标
:
create or replace package MONITORFLUSSI as
procedure get_monitorflussi(dataSegnalazione in date, compagnia in varchar2, tabella in varchar2, daInviare in number, o_tabella out varchar2 );
procedure get_monitorflussi(daInviare in number, o_tabella out varchar2 );
end MONITORFLUSSI;
create or replace package body MONITORFLUSSI as
procedure get_monitorflussi(dataSegnalazione in date, compagnia in varchar2, tabella in varchar2, daInviare in number, o_tabella out varchar2 ) is
begin
for c in ( select * from monitor_flussi t where t.daInviare = daInviare )
loop
o_tabella := c.tabella;
end loop;
end;
procedure get_monitorflussi(daInviare in number, o_tabella out varchar2 ) is
begin
select t.tabella into o_tabella from monitor_flussi t where t.daInviare = daInviare;
end;
end MONITORFLUSSI;
其中,我已经覆盖了这两种情况下的过程get\u monitorflussi
INTO子句
和Cursor
可能重复@defaultlocale我知道已经发布了数千个关于此错误的问题,但我仍然不明白在我的情况下,您需要在包体中放置一个过程实现(开始-结束部分)。请阅读此答案:请阅读并接受答案当我分开标题和正文时,我得到错误“错误(4,1):PLS-00103:遇到符号“/”,您正在使用哪个工具?SQL开发者?Oracle SQL开发者。SQL开发人员使用“/”表示“块结束”。我对它也有一些问题,所以转而采用不同的工作方式:在SQLDeveloper中,您可以右键单击并“创建包”或“创建包体”。这是最安全的方法。记住:首先是规格,然后是车身,按顺序排列。祝你好运@Hilarion,我不这么认为,但事实上,这并不重要。我得到错误“错误(4,1):PLS-00103:遇到符号“/”,这应该分为两个包:一个是正常包,一个是包body@anhtv13如果使用工作表而不是命令行,则无需使用斜杠。