函数:
与过程相似,遵循了相同的规则。
参数传递:只能带有in参数,不能使用out, in out 参数
函数的主要特性是必须返回一个值。
语法:
CREATE [OR REPLACE] FUNCTION function_name (参数)
RETURN datatype
IS | AS
[PRAGMA AUTONOMOUS_TRANACTION;] –声明自主事务处理。
[本地变量声明]
BEGIN
执行语句部分
[EXCEPTION]
错误处理部分
END[name];
/
返回值:
定义函数的时候必须使用RETURN datatype 子句,表示函数要返回的数据类型。
在函数体中的任何地方,都可以使用 RETURN <表达式>返回值,类型要和定义中的相同。
CREATE OR REPLACE
FUNCTION my_func
RETURN varchar2
As
Begin
Return ‘HELLO, WORLD’;
END;
/
调用函数:
用户必须要获取返回值,所以调用时,要声明一个局域变量:
set serveroutput on
declare
l_str varchar2(100) := null;
begin
l_str := my_func;
dbms_output.put_line(l_str);
end;
/
也可以将函数用作其他过程以及函数的IN参数。
Create or replace
Procedure show_it(p varchar2) as
Begin
Dbms_output.put_line(p);
End;
/
exec show_it(my_func);
练习:
编写一个函数ITE,实现:boolean expression ? true_value: false_value
输入一个表达式expression, IF正确,THEN输出true_value;ELSE,输出false_value
分析:3个in 参数,一个boolean, 2个varchar2
create or replace
function ite(
p_expression Boolean,
p_true varchar2,
p_false varchar2)
return varchar2
as
begin
if p_expression then
return p_true;
end if;
return p_false;
end;
/
exec dbms_output.put_line(ite(1=2, ‘Equal’
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
![TechTarget微信公众号二维码](/wp-content/uploads/res/images/spriteimg/ttweixin.jpg)
TechTarget
官方微博
![TechTarget中国官方微博二维码](/wp-content/uploads/res/images/spriteimg/ttweibo.jpg)
TechTarget中国
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。