PL/SQL Developer中执行过程的问题

11 sql oracle plsql procedure ora-00900

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

表名:Ziaci

列:

  • ZiakId - 主键,数字
  • 姓氏,varchar2
  • FirstName,varchar2
  • TriedaId - 伪造钥匙,号码

存储过程只在表中插入数据,我用这个SQL cmd创建了store procudure:

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;
Run Code Online (Sandbox Code Playgroud)

我试着把这个问题称为:

execute ziaci_proc('X','Y',1)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ORA-00900无效的SQL语句

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

我测试这个程序,它运作良好.

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

begin
ziaci_proc('A','B',2);
end;
Run Code Online (Sandbox Code Playgroud)

什么是坏的,谢谢你的帮助.

jav*_*nna 11

我认为你在"SQL窗口"中编写命令.您应该使用"命令窗口"成功执行此行:

execute ziaci_proc('X','Y',1);
Run Code Online (Sandbox Code Playgroud)


Luk*_*ard 11

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

SQL> execute some_proc()
BEGIN some_proc(); END;

      *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'SOME_PROC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored