我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle自定义函数记录

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle自定义函数记录

函数主要是用来操作各种数据,并返回相应的操作结果。用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。
函数的语法:
Create [or replace] function function_name [in datatype,out datatype, in out datatype]
Return datatype
Is|as
……..
函数:
1、函数可在sql中的以下部分被调用:
select、where、having、connect by、start with、order by、group by、insert的values中、update的set中。
2、在函数内,是通过return语句来返回值的。函数体可以有多条return语句,但只能有一条被执行。函数结束时,还没有执行return语句会产生错误。
另外,return语句也可以使用在存储过程中,这种情况下它没有参数,当执行不带参数的return语句后,立刻结束并跳出存储过程,将out,in out形式的形参的当前值传给实参,并将控制权返回到调用环境。
3、函数和存储中的 is 和 as 是没有区别的,游标是is。
4、被调用的函数满足以下限制:
1)、只能调用服务端函数,即是不能作为块的一部分。
2)、函数只能有输入参数,不能有out\in out
3)、函数只能使用sql支持的标准数据类型,不能使用PL/SQL特有的数据类型。
4)、函数内不能包含DML语句
5、函数的参数有3种类型:
1)、in参数类型:表示输入给函数的参数,该参数只能用于传值,不能被赋值。
eg:

create or replace function f_test1(h  in  varchar2) return varchar2
  as
  begin
 ---   h:=2;
    dbms_output.enable(buffer_size=>null);
    dbms_output.put_line(h);
    return h;
    end;
select f_test1(4) from dual;

2)、out参数类型:表示参数在函数中被赋值,可以传给函数调用程序,该参数只能用于赋值,不能用于传值。
eg:

create or replace function f_test3 (h varchar2,b out varchar2) return varchar2
 as
 begin
   b:=h+10;
  --- dbms_output.put_line(b);
   return h;
   end;
.....调用......
declare
v_1 varchar2(10);
v_2 varchar2(10);
begin
  v_1:=f_test3(10,v_2);
  dbms_output.put_line(v_1);
  dbms_output.put_line(v_2);
  end;

3)、in out参数类型:表示参数既可以传值,也可以被赋值。

create or replace function f_test2(h  in out varchar2) return varchar2
  as
  begin
    h:=2;
    dbms_output.enable(buffer_size=>null);
    dbms_output.put_line(h);
    return h;
    end;

declare
v_1 varchar2(10):='4';
begin
 v_1:=f_test2(v_1);
 end;

(说明:带out参数的字定义函数不能用于 SQL语句,只能在PL/SQL程序里)

示例部分:
1.function 调用function

create or replace function f_test4 (h varchar2) return varchar2
as
g varchar2(10);
f varchar2(10);
j varchar2(10);
begin
  g:=f_test3(h,f);
  j:=h+f;
  return j;
  end;
   select f_test4(10) from dual;

2.取权利人姓名:
create or replace function f_get_qlr (v_slbh varchar2) return varchar2
as
v_qlr varchar2(50);
begin
for i in (select q.* from dj_qlrgl gl inner join dj_qlr q on gl.qlrid=q.qlrid where gl.qlrlx='权利人' and gl.slbh=v_slbh) loop
v_qlr:=v_qlr||i.qlrmc||'、';
end loop;
return substr(v_qlr,0,instr(v_qlr,'、',-1)-1);
---return v_qlr;
end;
by wolihaito 2018.02.20

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle自定义函数记录

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

cratedb 自定义函数

cratedb 支持自定义函数,但是当前只有js 引擎(基于graalvm),而且需要企业license (当然我们可以使用免费的3节点的集群)自定义函数格式CREATE [OR REPLACE] FUNCTION function_name   ( [ [

	cratedb 自定义函数
2016-07-05

mysql 自定义函数

-- 如果存在hello这个名称的函数则删除hellodrop FUNCTION if exists hello;-- 创建一个叫hello的函数返回值为int类型,参数为varchar类型 参数名称为usernameCREATE FUNCTION hello
2016-12-27

Golang 自定义 ServeHTTP 状态日志记录

php小编香蕉为您介绍Golang自定义ServeHTTP状态日志记录。在Golang中,ServeHTTP函数是用于处理HTTP请求的关键函数之一。通过自定义ServeHTTP函数,我们可以记录并跟踪每个请求的状态信息,以便更好地了解和调
Golang 自定义 ServeHTTP 状态日志记录
2024-02-11

Python基础:自定义函数

函数的形式:def name(param1, param2, ..., paramN): statements return/yield value # optional和其他需要编译的语言(比如 C 语言)不一样的是,def
2023-01-31

JavaScript如何自定义函数

这篇文章主要介绍“JavaScript如何自定义函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何自定义函数”文章能帮助大家解决问题。JavaScript中的函数分为两种:系
2023-06-29

Python如何自定义函数

小编给大家分享一下Python如何自定义函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!自定义函数import requestsfrom bs4 import
2023-06-27

如何自定义 PHP 函数?

自定义 php 函数包括以下步骤:使用 function 关键字声明函数。指定函数名。定义参数(可选)。使用 return 语句返回数据(可选)。调用函数。如何自定义 PHP 函数:打造灵活的代码PHP 函数是强大的工具,可重复使用代码块
如何自定义 PHP 函数?
2024-04-10

hive3.0.0如何自定义函数

这篇文章主要为大家展示了“hive3.0.0如何自定义函数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“hive3.0.0如何自定义函数”这篇文章吧。示例代码package hello_hive
2023-06-02

python3 自定义比较函数

python 2 中支持类似 c++ 中 cmp 的写法python 3 放弃了这一用法官方说明:https://docs.python.org/3/howto/sorting.html#sortinghowto多元素比较时可以写成:a =
2023-01-31

如何在 Java 中自定义 shuffle 函数?(如何自定义Java中的shuffle函数)

在Java编程中,shuffle函数常用于打乱数组或集合的元素顺序,为数据处理和随机化操作提供了便利。然而,有时候我们可能需要自定义shuffle函数以满足特定的需求。本文将详细介绍如何在Java中自定义shuffle
如何在 Java 中自定义 shuffle 函数?(如何自定义Java中的shuffle函数)
Java2024-12-19

编程热搜

目录