一尘不染

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

sql

这是我第一次尝试创建过程并执行它。首先,我创建一个简单的表。表的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;

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


阅读 165

收藏
2021-03-10

共1个答案

一尘不染

使用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:语句被忽略
2021-03-10