2015-08-13 37 views
0

我在尝试运行使用过程的简单PL/SQL程序时遇到了上述错误。我不知道出了什么问题,请帮忙。oracle-PLS-00103&ORA -06550程序

ORA-06550::第2行,第2列:PLS-00103:出现符号 “CREATE” 在需要下列之一时:开始功能

declare 
    create or replace procedure palindrome (x in number,y out number) is 
    i integer; 
    j integer; 
    k integer:=0; 
begin 
    i:=x; 
    while i>0 
    loop 
     j:=mod(i,10); 
     k:=k*10+j; 
     i:=i/10; 
    end loop; 
    y:=k; 
end; 
begin 
    x integer:=121; 
    y integer; 
    palindrome(x,y); 
    dbms_output.put_line(y); 
end; 

/ 第2行ERROR pragma 过程子类型当前光标删除先前存在

回答

0

对您的代码的修改。

create or replace procedure palindrome (x in number,y out number) is 
    i integer; 
    j integer; 
    k integer:=0; 

begin 
    i:=x; 
    while i>0 
    loop 
     j:=mod(i,10); 
     k:=k*10+j; 
     i:=i/10; 
    end loop; 
    y:=k; 
    dbms_output.put_line(y); 
end; 

/

执行该程序

declare 
y number; 
begin 
palindrome(133,y); 
end; 
+0

Thanks tarun .... –

0

当你创建一个包含变量声明匿名PL/SQL块只需要DECLARE。在创建命名过程/函数/包时,您的CREATE OR REPLACE ...声明代替DECLARE。声明与相应的BEGIN之间的任何内容都被称为声明部分。

它,如果你想创建一个名为程序,然后就可以用另一个PL/SQL匿名块调用,在这种情况下,你不特别清楚:

create or replace procedure palindrome (x in number,y out number) is 
    i integer; 
    j integer; 
    k integer:=0; 
begin 
    i:=x; 
    while i>0 
    loop 
     j:=mod(i,10); 
     k:=k*10+j; 
     i:=i/10; 
    end loop; 
    y:=k; 
end; 
/

declare 
    x integer := 121; 
    y integer; 
begin 
    palindrome(x,y); 
    dbms_output.put_line(y); 
end; 
/

,或者如果你”重新尝试在匿名PL/SQL中声明一个过程,在这种情况下,你会这样做:

declare 
    x integer := 121; 
    y integer; 

    procedure palindrome (x in number, y out number) is 
     i integer; 
     j integer; 
     k integer := 0; 
    begin 
     i := x; 
     while i > 0 
     loop 
      j := mod(i,10); 
      k := k*10 + j; 
      i := i/10; 
     end loop; 
     y := k; 
    end palindrome; 
begin 
    palindrome(x,y); 
    dbms_output.put_line(y); 
end; 
/
+0

这帮了我很多@boneist。你可以建议一个PL SQL的教程? –

+0

不是教程,没有。但是我可以推荐[PL/SQL参考手册](https://docs.oracle.com/cd/E11882_01/appdev.112/e25519/toc.htm)和Steven Feuerstein的书[Oracle PL/SQL Programming](http ://www.amazon.co.uk/Oracle-SQL-Programming-Steven-Feuerstein/dp/1449324452/) – Boneist