2015-08-13 80 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