Oracle编译小结,Oracle学习笔记——函数

说说函数

上一篇文章《Oracle学习笔记——存储过程》总结了Oracle中的存储过程,这篇文章将总结Oracle中的函数,下一篇文章将对Oracle中的包再进行详细总结。这样基本就把Oracle中开发的重点内容都总结的差不多了。

函数和存储过程一样,也是编译好存储在数据库服务器上的程序代码。函数与存储过程  最大的不同在于,函数必须要有返回值。当然了,函数具有存储过程一样的优点,不知道的伙计,请参见《Oracle学习笔记——存储过程》。

如果你写过C或者C++程序,你就应该知道C和C++中有很多内置的函数库;Oracle也是如此,它也内置了很多的函数,在后续总结中,我会对Oracle中内置的主要函数进行总结。但是,内置的函数只是提供大众的,普通的功能;而很多时候无法满足我们实际工作的需要,此时我们就需要编写我们自己的函数了。好了,开始我们函数的学习之旅吧。

创建一个函数

先实实在在的写上一个函数,看看函数在Oracle中到底是什么样子的。create or replace function func_test(param1 number default 20)

return number

is

val number;

begin

val := 20;

if param1 >= val then

return(param1);

else

return(val);

end if;

end;

这就是一个简单的函数,其中func_test是函数的名字,括号中的内容和存储过程一样,都是参数。return number表示函数返回值的数据类型是number类型;由于函数必须要有返回值,所以可以看到代码中的return(val)语句。

在PL/SQL中定义一个函数就是如此的简单,只需要记住一点——必须要有返回值。

编译函数

就像我们写C++、Java代码一样,写完以后都需要编译。在PL/SQL Developer中,直接单击Execute就可以完成编译;而在命令行中使用命令alter function ... compile对函数进行编译,比如:SQL> alter function func_test compile;

调用函数

我们定义的函数终归到底还是提供给别人调用的,我们可以在SQL语句中调用函数、在赋值语句中调用函数、在表达式中调用函数。下面就说几种常用的调用方式。在SQL语句中调用函数select func_test from dual; -- 函数无参数,或参数有默认值时,可以不写括号

select func_test(30) from dual; -- 函数有参数,并且没有默认值时,必须传递参数

这样就是直接在SQL语句中调用函数,就可以直接得到函数的返回值。

在赋值语句中调用函数

很多时候,我们需要将函数的返回值赋值给一个变量保存起来,我们这样直接调用。-- Created on 8/30/2015 by JELLY

declare

-- Local variables here

i integer;

begin

-- Test statements here

i := func_test();

dbms_output.put_line(i);

end;

在表达式中调用函数

又或有的时候,我们需要在表达式中调用函数,这也没有任何问题。-- Created on 8/30/2015 by JELLY

declare

-- Local variables here

i integer;

begin

-- Test statements here

if func_test(200) > 100 then

dbms_output.put_line('Larger than 100');

else

dbms_output.put_line('Less than 100');

end if;

end;

删除函数

当发现有一个函数写的非常垃圾时,实在不能忍受这样的垃圾代码时,你可以直接干掉它。drop function func_test;

现在你的世界变的清静了。

总结

总结了这么多,其实你会发现定义一个函数就像在C++、Java中定义一个函数那样简单,前提是你需要知道你要干什么。将之前学习到的PL/SQL知识在编写函数时尽情的运用出来吧。

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/549.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值