有时候在较为复杂的查询中,会出现较为复杂的逻辑,直接写在sql当中一来不够明了,二来会令二次修改的时候变得尤为困难不利于维护,既然是搞java的,面相对象编程自然要学会封装,所以自定义function就出现了它的意义,可以让sql便于维护一目了然,能更加方便的处理较为复杂的关联查询逻辑等等好处
废话不多说,让我们开始先从简单的sql自定义function说起吧,数据库中函数包含四个部分:声明、返回值、函数体和异常处理,首先来看看无参数的自定义function如下:
首先看一个最简单的无参数自定义函数
1 | create or replace function test_one return varchar2 --创建声明函数以及返回类型 |
执行select test_one from dual
查看结果
再来看一个带参数相加函数
1 | create or replace function test_add( |
执行select test_add(1,2) from dual
查看结果
有些同学可能会说自定义函数就这样?那还不如直接写sql呢,好接下来我们来个稍微复杂点的
1 |
|
上述这个函数如果用sql编写,既不好写,也容易让人看得晕头转向,但当变成函数封装起来之后,就像java程序一样你只需要关心你传入的参数和他返回给你的值就好,减轻日后维护的工作量。
好了今天我们先简要介绍这么多,下次介绍更为复杂的自定义函数包括与游标的结合使用,以及多层函数的调用等等。