oracle 12c,使用编译错误创建的过程

时间:2017-01-26 11:29:25

标签: oracle plsql

我是Oracle新手,刚开始在互联网课程中学习它。

这是我输入的PL / SQL:

create or replace procedure xl_2 is
declare
v_ename varchar2(20);
begin
select ename into v_ename from emp where empno=&no;
dbms_output.put_line('Ename'||v_ename);
end;
/

以及SHOW错误后的问题:

2/1      PLS-00103: 出现符号 "DECLARE"在需要下列之一时:   begin function pragma     procedure subtype type <an identifier>     <a double-quoted delimited-identifier> current cursor delete     exists prior external language  符号 "begin" 被替换为 "DECLARE" 后继续。  
9/0      PLS-00103: 出现符号 "end-of-file"在需要下列之一时:   ( begin case     declare end exception exit for goto if loop mod null pragma     raise return select update while with <an identifier>     <a double-quoted delimited-identifier> <a bind variable> <<     continue close current delete fetch lock insert open rollback     savepoint set sql execute commit forall merge pipe purge  

我输入的课程样本完全一样,但是出错了。

12c中有新的东西来创建程序吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

Rermove declare

create or replace procedure xl_2 is
v_ename varchar2(20);
begin
select ename into v_ename from emp where empno=&no;
dbms_output.put_line('Ename'||v_ename);
end;
/

声明是匿名阻止而不是程序。另一个问题可能是&no这将在创建过程时被替换。我想你需要:

create or replace procedure xl_2(p_empno number) is
v_ename varchar2(20);
begin
select ename into v_ename from emp where empno=p_empno;
dbms_output.put_line('Ename'||v_ename);
end;
/

能够为不同的empno调用程序。