Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle数据库错误(3,3):PLS-00103:遇到符号;“开始”;当需要以下选项之一时:语言_Sql_Oracle - Fatal编程技术网

Sql Oracle数据库错误(3,3):PLS-00103:遇到符号;“开始”;当需要以下选项之一时:语言

Sql Oracle数据库错误(3,3):PLS-00103:遇到符号;“开始”;当需要以下选项之一时:语言,sql,oracle,Sql,Oracle,我不熟悉Oracle SQL,我尝试编写一个新的包。 然而我得到这个错误,在这个网站上搜索解决方案后,我仍然不明白错误是什么。 请帮我解决这个问题。 谢谢。您的错误是,您试图将一个包头装入板条箱,并将程序主体包含在其中 包装有标题(或规格)和主体。标题仅包括要从外部世界(包的)访问的过程/函数/类型/变量的签名 除其他事项外,该机构还包括程序/职能的实施 要解决您的问题,请在包标题中只保留过程的说明,并将详细信息放在包正文中 希望这能解决您的问题。正如@FDavidov提到的,您需要 a包装规格

我不熟悉Oracle SQL,我尝试编写一个新的包。 然而我得到这个错误,在这个网站上搜索解决方案后,我仍然不明白错误是什么。 请帮我解决这个问题。
谢谢。

您的错误是,您试图将一个包头装入板条箱,并将程序主体包含在其中

包装有标题(或规格)和主体。标题仅包括要从外部世界(包的)访问的过程/函数/类型/变量的签名

除其他事项外,该机构还包括程序/职能的实施

要解决您的问题,请在包标题中只保留过程的说明,并将详细信息放在包正文中


希望这能解决您的问题。

正如@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如果使用工作表而不是命令行,则无需使用斜杠。