当前位置: 首页 > 面试题库 >

PL / SQL Developer中执行过程出现问题

景靖琪
2023-03-14
问题内容

这是我第一次尝试创建过程并执行它。首先,我创建一个简单的表。表的DB方案在这里:

表名:Ziaci

列:

  • ZiakId-主键,数字
  • 姓氏varchar2
  • 名字,varchar2
  • TriedaId-伪造密钥,数字

存储过程仅在表中插入数据,我使用此SQL cmd创建了存储过程:

create procedure ziaci_proc(surname_in in varchar2, 
firstname_in in varchar2, triedaid_in in number)
is
begin
  insert into ziaci (surname, firstname,triedaid) values (surname_in,firstname_in,triedaid_in);
  end;

我尝试将此程序称为:

execute ziaci_proc('X','Y',1)

我收到此错误:

ORA-00900无效的SQL语句

在PL / SQL Developer IDE中,带有红色下划线的执行字。

我测试了此过程,效果很好。

我只能使用以下SQL命令执行此过程:

begin
ziaci_proc('A','B',2);
end;

有什么不好的,谢谢帮忙。


问题答案:

使用execute上述调用存储过程特定于SQL * Plus。实际上,SQL * Plus会转换execute some_proc()BEGIN some_proc(); END;,您可以通过尝试调用一个不存在的过程来自己查看:

SQL>执行some_proc()
开始some_proc(); 结尾;

      *
第1行发生错误:
ORA-06550:第1行,第7列:
PLS-00201:必须声明标识符“ SOME_PROC”
ORA-06550:第1行,第7列:
PL / SQL:语句被忽略


 类似资料:
  • 问题内容: 首先,如果标题误导我,我深表歉意。英语不是我的母语,所以我不确定该如何命名。现在的问题是: 我有一个活动,可显示存储在Firebase项目中有关用户的数据。数据在Firebase用户(显示名称,电子邮件和个人资料图像)和Cloud Firestore中名为该用户的文档之间分配。 当此活动开始时,我进行了Firebase谷歌身份验证以获取用户,然后出现了问题。我需要知道用户是否在数据库中

  • 我已经用Oracle Enterprise Linux安装了VirtualBox image。它包含已安装的Oracle Database 12.1.0。 在虚拟机网络设置中,我选择“Bridget Adapter”。接下来Linux我配置了连接设置:静态IP地址:192.168.0.110 现在我可以使用ping 192.168.0.110 ping到虚拟机。 虚拟机上的文件: tnsnames

  • 我试图在包含GUI系统的JDK 11.0.2上运行我在Intellij中创建的一个可执行jar文件。我已经安装了Java8和java SDK11.0.2。每当我双击jar文件时,我希望主gui登录屏幕出现,但什么也没有发生。我已经尝试了其他选项,例如尝试通过cmd运行它(它给了我一个访问错误),HKEY_CLASSES_ROOT\jarfile已经有命令:“C:\Program Files\jav

  • 我正在尝试让nutch 1.11执行爬网。我正在使用cygwin在windows 7中运行这些命令。 Nutch正在运行,运行bin/Nutch会得到结果,但当我尝试运行爬网时,会不断收到错误消息。 当我尝试使用 nutch 运行爬网执行时,我收到以下错误: 运行时出错:/cygdrive/c/Users/User5/Documents/Nutch/apache-Nutch-1.11/runtim

  • rstp-stream(https://www.npmjs.com/package/node-rtsp-stream)并在-js文件中执行以下配置:Stream=require('node-rtsp-stream');stream=新流({name:'name', StreamURL:'rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov', Ws

  • 这里是我的过程中,我过滤4个参数的数据库: 开始日期、结束日期、小时和分钟。 当我过滤数据之间2017-11-01到2017-11-30(与一个月)它的工作罚款,但当我过滤数据大于1个月,如2017-11-01到2017-12-10然后它给我的错误如下。 程序 错误 ORA-06502:PL/SQL:数字或值错误 ORA-06512:在"MYRENT. RENTEDTOTALCARS",第58行