12

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

表名: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;

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

4

2 回答 2

12

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:语句被忽略
于 2011-03-05T13:49:55.997 回答
11

我认为您正在“SQL Window”中编写命令。您应该使用“命令窗口”成功执行此行:

execute ziaci_proc('X','Y',1);
于 2011-03-05T11:18:06.040 回答