Oracle 函数 Function
定义
函数用于计算和返回一个结果值,把经常需要进行的计算写成函数,函数的调用是表达式的一部分。
函数与过程在创建的形式上有些相似,也是编译后放在内存中供用户使用。
函数必须有一个返回值,而过程没有做强制的规定。
RETURN在声明部分需要定义一个返回参数的类型,而在函数体中必须有一个RETURN语句。如果函数结束时还没有遇到返回语句,就会发生错误。
创建
create or replace function Fn_First
return varchar2 --不需要长度
is
Result varchar2(100); --declare,长度定义。
begin
NULL;
return(Result);
end Fn_First;
调用方法一
declare
var_str varchar(100);
begin
var_str := fn_first();
dbms_output.put_line(var_str);
调用方法二
select fn_first() from dual;
项目应用
带输入参数
CREATE OR REPLACE FUNCTION SF_PUB_STRMINUSINT
(p_beg in varchar2,
p_end in varchar2
)
return int
/**
AUTH
FUNC 两个随机号相减得数
**/
AS
v_ret int;
vs_geb varchar2(30);
vs_str varchar2(30);
vn_beg int;
vs_dne varchar2(30);
vn_end int;
begin
--反转
select reverse(p_beg) into vs_geb from dual;
--正则
select regexp_substr(vs_geb,'[0-9]+',1,1) into vs_str from dual;
--取得随机码
select to_number(reverse(vs_str)) into vn_beg from dual;
--止号
select reverse(p_end) into vs_dne from dual;
--正则
select regexp_substr(vs_dne,'[0-9]+',1,1) into vs_str from dual;
--取得随机码
select to_number(reverse(vs_str)) into vn_end from dual;
v_ret:=vn_end-vn_beg+1;
return v_ret;
end SF_PUB_STRMINUSINT;
以对象返回数据列表
create or replace function fn_test
( pid in number
)
return
tabTEST
is
Result tabTEST =tabTEST();
USERID number(12);
VNAME varchar(200);
orgid number(12);
type tab is table of number;
tab_test1 tab;
/***
create or replace type ctest as object
(
cUser number(12), --不可注释
cName varchar(200),
cOrg number(12)
)
create or replace type tabTEST is table of ctest
测试
select from table(cast(fn_test({0})as tabTEST))
***/
begin
select ID bulk collect into tab_test1 from tuser where id=pid;
Result =tabTEST();
for i in 1..tab_test1.count loop
select ID,name,belongorg into USERID,VNAME,orgid from tuser where ID=tab_test1(i); Result.extend;
Result(Result.count)=ctest(NULL,NULL,NULL);
Result(Result.count).cUser=USERID;
Result(Result.count).cName=VNAME;
Result(Result.count).cOrg =orgid;
end loop;
return(Result);
end fn_test;
Oracle 函数 Function的更多相关文章
- Oracle 函数function之返回结果集
工作中常需要经过一段复杂逻辑处理后,得出的一个结果集.并能够将这个结果集作为一个表看待,去进行关联查询 我一般采用建立函数function的方式来处理. --创建包,声明function和typeCR ...
- Oracle函数function
--function /* 函数是有返回值.-只能有一个返回值. 语法 Create or replace func1(参数) Return varchar2 As Pl/sql块 Return 'J ...
- 浅谈Oracle函数返回Table集合
在调用Oracle函数时为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合 ...
- oracle的function和procedure返回值给shell
本文演示两个关于如何在shell中调用oracle的function和procedure,并将返回值返回给shell. 1.首在package中创建function和procedure,脚本如下: G ...
- 汉字转拼音的Oracle函数
前言: 最近处理一个特殊的问题,需要用到汉字自动转换拼音的功能. 解决: 在这里找了不少资料,都是有所缺陷,而且也好像很绕.其实是一个很简单的东东.后来还是自己写了一个函数获取.分享出来,给有需要的X ...
- oracle 函数中,一定要注意出现空记录和多条记录的处理方法
今天折腾了3个小时,为一个以前不知道的oracle函数机制: 在sql查询中,如果一个查询未能获取记录,oracle不会报错 如select aa from bb where 1=2; 但在oracl ...
- Oracle Table Function
Oracle Table Function在Oracle9i时引入.完美的兼容了view和存储过程的长处: 应用举例: 1.Table()函数: set feedback off create or ...
- 【函数】Oracle函数系列(1)--字符函数
[函数]Oracle函数系列(1)--字符函数 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识 ...
- Jpa-Spec oracle函数bitand,instr等扩展
jpa-spec github: https://github.com/wenhao/jpa-spec 使用这个框架可以简化我们拼条件的复杂度,如下代码: public Page<Person& ...
随机推荐
- 成环的概率dp(初级) zoj 3329
原题地址:https://vjudge.net/problem/ZOJ-3329 题目大意: 有三个骰子,分别有k1,k2,k3个面,初始分数是0.第i骰子上的分数从1道ki.当掷三个骰子的点数分别为 ...
- js简单实现自动轮播
//简单一个布局存放图片 <div class="lb"> <div class="lbt"> <img src="im ...
- 认识 Linux 文件权限
Linux 之所以是比较安全的操作系统,和它丰富的文件权限设定是有关系的,学习 Linux 操作系统一定要懂文件的权限识别和设置.通过这篇博文我们了解 Linux 操作系统的文件权限. 拥有者 / ...
- css属性之统一设置文本及div之间的对齐方式
设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效.hdp-uf{ display: -webkit-box; /* 老版本语法: Safari, iOS ...
- Jenkins+maven环境部署
选择使用tomcat下运行jenkins项目,安装步骤如下 1. 安装tomcat,查看想要下载的版本 https://mirrors.cnnic.cn/apache/tomcat/ wget h ...
- [原创]基于Zybo SDIO WiFi模块调试
采用的是RTL8189 SDIO 模块,介绍如下 The Realtek RTL8189ES-VB-CG is a highly integrated single-chip 802.11n Wire ...
- tensorflow Tensorboard2-【老鱼学tensorflow】
前面我们用Tensorboard显示了tensorflow的程序结构,本节主要用Tensorboard显示各个参数值的变化以及损失函数的值的变化. 这里的核心函数有: histogram 例如: tf ...
- 4.BN推导
参考博客:https://www.cnblogs.com/guoyaohua/p/8724433.html 参考知乎:https://www.zhihu.com/question/38102762/a ...
- C语言--第五次作业--指针
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 没想到都已经学习完C语言的灵魂-指针的内容了(当然也是C里面最难学习的内容了).虽然在之前就有听学习进度比较 ...
- 机器学习之--kmeans聚类简单算法实例
import numpy as np import sklearn.datasets #加载原数据 import matplotlib.pyplot as plt import random #点到各 ...