create or replace function look_for
(xuehao in char)
return number
as
n number;
begin
select avg(学分) into n
from 学生
where 学号='xuehao';
while(n)
loop
n=n+(n-1);
end loop;
return(n);
end look_for;
Oracle程序,帮看看哪里出错,谢谢
(xuehao in char)
return number
as
n number;
begin
select avg(学分) into n
from 学生
where 学号='xuehao';
while(n)
loop
n=n+(n-1);
end loop;
return(n);
end look_for;
Oracle程序,帮看看哪里出错,谢谢
begin……
改成
is
begin……
n number;
begin
select avg(学分) into n from 学生 where 学号 = 'xuehao';
while (n > 60) loop
n := n + (n - 1);
end loop;
return n;
end look_for;
(xuehao in char)
return number
as
n number;
begin
select avg(学分) into n
from 学生
where 学号='xuehao'; --xuehao变量有问题吧,不要加''. 还需要注意no_data_found的异常处理
while(n) --n? 如我前面所说,要做一个bool表达式。这不是c/c++, 要有关系运算的
loop
n=n+(n-1);
end loop;
return(n);
end look_for;
(xuehao in char)
return number
as
n number;
begin
select avg(学分) into n
from 学生
where 学号='xuehao';
while(n)
loop
n=n+(n-1);
end loop;
return(n);
end look_for;
Oracle程序,帮看看哪里出错,谢谢你这里有2处错误
第一 oracle中的附值 :=不是=
第二 while中的参数最终结果要是true 或者是false 的
CREATE OR REPLACE FUNCTION LOOK_FOR(XUEHAO IN CHAR) RETURN NUMBER AS
N NUMBER;
BEGIN
SELECT AVG(学分) INTO N FROM 学生 WHERE 学号 = XUEHAO;
/* WHILE (N) LOOP
N = N +(N - 1);
END LOOP;*/
RETURN(N);
END LOOK_FOR;
/
错误:
1. xuehao不能用引号引用
2. while循化无法结束.
3. 赋值语法是 n:=n+n-1;