为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何求oracle中的function的所有语法定义,以及注意事项?

请问该如何求oracle中的function的所有语法定义,以及注意事项?

慕神8447489 2019-07-09 10:06:10
求oracle中的function的所有语法定义,以及注意事项
查看完整描述

5 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

16.自定义函数
自定义函数语法:
CREATE OR REPLACE FUNCTION 函数名
RETURN 返回值类型
IS
声明部分;
BEGIN
函数体;
RETURN 变量;
END;
函数与存储过程的区别:
(1)语法上除了创建对象的关键字不同之外,函数还多了一个RETURN关键字,它确定了该函数返回值的数据类型.
(2)存储过程可以没有返回值,但函数必须有返回值,即使发生异常也要返回.
(3)函数与标准SQL结合性更好,带OUT型参数的存储过程必须用PL/SQL方式调用,而函数均可以通过标准SQL调用.
注: (1)函数返回值只提供返回值类型,不允许有长度.
(2)使用函数必须接收返回值.
样例:
create or replace function getSal(v_empno varchar)
return number
is
v_sal number(4);
begin
select sal into v_sal from emp where empno=v_empno;
return v_sal;
end;
调用: (1) select getsal(7499) from dual;
(2) declare
v_sal number(4);
begin
v_sal:=getsal(7499);
dbms_output.put_line(v_sal);
end;
17.函数的删除
语法: DROP FUNCTION 函数名;



查看完整回答
反对 回复 2019-07-14
?
呼唤远方

TA贡献1856条经验 获得超11个赞

create or replace function 函数名(参数)
return 返回值类型
as
定义变量
begin

函数主体

end ;

查看完整回答
反对 回复 2019-07-14
?
HUX布斯

TA贡献1876条经验 获得超6个赞

create or replace function Fun_Multiplicative(v_input in number) return number is
v_result number(8);
v_total number(8) :=1;
v_count number(5) :=1;
begin
while v_count <= v_input loop
v_total := v_total * v_count;
v_count := v_count + 1;
end loop;
v_result := v_total;
return(v_result);
end Fun_Multiplicative;



查看完整回答
反对 回复 2019-07-14
?
MYYA

TA贡献1868条经验 获得超4个赞

create or replace function my_fun return number is
i number := 1;
total number := 1;
begin
while i<=20 loop
total := total*i;
i := i+1;
end loop;
return total;
end my_fun;



查看完整回答
反对 回复 2019-07-14
  • 5 回答
  • 0 关注
  • 908 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信