为阶乘程序创建plsql函数
当我使用select语句调用函数时 [从dual中选择事实(5);] 我得到的输出是1。你们能从下面的代码中帮助我吗为阶乘程序创建plsql函数,plsql,Plsql,当我使用select语句调用函数时 [从dual中选择事实(5);] 我得到的输出是1。你们能从下面的代码中帮助我吗 create or replace function fact(num in number) return number Is res_fact number:=1; begin for i in 1..5 loop res_fact:=res_fact*i; dbms_output.put_line(res_fact); -- dbms_output.pu
create or replace function fact(num in number)
return number
Is
res_fact number:=1;
begin
for i in 1..5 loop
res_fact:=res_fact*i;
dbms_output.put_line(res_fact);
-- dbms_output.put_line('Factorial of '||num||' = '||res_fact);
return res_fact;
end loop;
dbms_output.put_line(res_fact);
end;
res_fact=res_fact*i;
as i call function i used to get the factorial of that input number
res_fact=5*4*3*2*1;
res_fact=120
使此代码“return res_fact;”脱离您的代码将运行的循环,但上面的代码只工作5天 两个问题。。。。
首先,您需要将return语句移到循环之外。现在,它将在第一次通过循环时返回
其次,忽略输入参数,总是得到5的阶乘,而不是传入的内容(一旦移动了return语句)
请参阅下面的代码
create or replace function fact(num in number)
return number
Is
res_fact number:=1;
begin
for i in 1..num loop
res_fact:=res_fact*i;
end loop;
dbms_output.put_line('Factorial of '||num||' = '||res_fact);
return res_fact;
end;
这看起来像是家庭作业,所以我不会给出直接的答案,但会给出一些提示:参数
num
应该做什么?您希望返回什么以及何时返回?我希望使用plsql语句执行函数声明v_事实编号;开始v_事实:=fact(8);dbms_output.put_line(v_fact);end;@如果您已经在任何地方创建了一个函数,请使用偶数过程或select语句您可以给我您的gmail id吗plz@Zealcollege你还有什么问题要面对吗。。kkr13590@gmail.comneed和你在一起聊天