什么" ORA-24344:编译成功"错误是什么意思?

时间:2018-04-25 14:44:19

标签: plsql

我是pl / sql块的新手。

当我运行以下代码时,它会显示:

  

ORA-24344:编译错误成功

执行代码后,它不显示输出

--Program definition: Create a procedure which will display the employees
--in descending order of employee name of the computer department

create or replace procedure proc_1(this_name in varchar2(50)) as
begin
loop
select name  from enployee2 order by name desc;
commit;
select name into this_name;
end loop;
end;



variable k varchar2(50)
execute proc_1(:k);

1 个答案:

答案 0 :(得分:2)

好的,你们有很多事情要做:

1> create or replace procedure proc_1(this_name in varchar2(50)) as
2> begin
3> loop
4> select name  from enployee2 order by name desc;
5> commit;
6> select name into this_name;
7> end loop;
8> end;
  • 在过程的第1行,您将this_name声明为varchar2(50)类型的IN参数。但是,根据程序规范,您不必指定参数的大小。所以你可以从规范中删除(50)。

  • 在第4行,您有select语句,没有INTO子句。

  • 在第5行,你有一个提交,但你没有在保证提交的程序中做任何工作;

  • 在第6行,您尝试在this_name中选择名称,但您的查询没有from子句。在Oracle SQL中,不接受没有FROM的SELECT。

  • 在第6行,您的INTO子句尝试在this_name参数中存储一个值,但它被声明为IN参数而不是OUT或IN OUT参数。

  • 在第3行和第7行打开和关闭循环,但没有退出条件,因此循环是无限的。