首页 文章

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

提问于
浏览
11

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

表名:Ziaci

列:

  • ZiakId - 主键,数字

  • 姓氏,varchar2

  • FirstName,varchar2

  • TriedaId - forgein key,number

存储过程只在表中插入数据,我用这个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;

我试着把这个问题称为:

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

我收到此错误:

ORA-00900无效的SQL语句

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

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

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

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

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

2 回答

  • 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
    
  • 11

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

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

相关问题