我在尝试运行使用过程的简单PL / SQL程序时遇到上述错误。我不知道出了什么问题,请帮忙。
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行的错误:
ORA-06550:第2行第2列:PLS-00103:遇到符号 " CREATE"期待以下之一时:开始函数编译指示 过程子类型当前光标删除存在于
之前
答案 0 :(得分:0)
对代码的修改。
m(x,y)
/
执行该程序
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;
答案 1 :(得分: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;
/