用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的参数有3种类型:
(1)in参数类型:表示输入给函数的参数,该参数只能用于传值,不能被赋值。
(2)out参数类型:表示参数在函数中被赋值,可以传给函数调用程序,该参数只能用于赋值,不能用于传值。
(3)in out参数类型:表示参数既可以传值,也可以被赋值。
1.函数的创建
语法格式:
create [or replace] function functionName ( parameterName1 mode1 dataType1, parameterName2 mode2 dataType2, ... ) return returnDataType is/as begin function_body return expression end functionName; -- 结束函数的声明,也可以直接写end不加函数名。 --其中mode1、mode2表示参数类型,dataType表示参数的数据类型。returnDataType表示返回值类型。
示例1:
create or replace function explainParameter -- 定义一个名为explainParameter的函数 ( inParam in char, -- 定义该参数类型为in参数类型,只能用于赋值 outParam out char, -- out参数类型,只能用于传值 inAndOutParam in out char -- in out参数类型,既能赋值,又能传值 ) return char -- 表示函数的返回类型为char类型 as -- 表示函数体部分 returnChar char; -- 声明零时变量,这是可有可无的,这里声明返回变量为char类型的returnChar变量。 begin inParam := 'Hello World'; -- 这是错误的,in类型的参数只能用来传值,不能赋值 outParam := 'Hello World'; -- 这是正确的,out类型的参数可以用来被赋值 inAndOutParam := 'Hello World'; -- 这是正确的,in out参数既可以用来传值,又可以被赋值 inAndOutParam := outParam; -- 这是错误的,out参数不能用来传值 return(returnChar); -- 返回returnChar,也可以不要括号,直接写return returnChar。 end explainParameter; -- 结束explainParameter函数,表示explainParameter函数声明结束,也可以直接写end,不加函数名。
示例2:
CREATE OR REPLACE FUNCTION testFunc (num1 IN NUMBER, num2 IN NUMBER) RETURN NUMBER AS num3 number; num4 number; num5 number; BEGIN num3 := num1 + num2; num4 := num1 * num2; num5 := num3 * num4; RETURN num5; END;
2.函数的调用
自定义函数的调用方法跟系统内置函数的调用方法相同,可以直接在select语句中调用,也可以在函数中调用,如下:
select testFunc(1,2) from tableName;
num := testFunc(1,2);
3.函数的删除
自定义函数的删除方法类似于表的删除,语法格式如下:
drop function [schema.]functionName;
相关推荐
5.统计函数——列名应指定别名 35 6. Group By分组 36 7.Having子句 36 8.练习:表的查询 36 五. 在SQL *Plus中使用函数 37 1.字符串函数 37 2.数字函数 37 3.日期时间函数 38 4.转换函数 38 第五讲 修改SQL数据与...
Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户 创建角色 SQL> create role admin; 授权给角色 SQL> grant connect,resource to admin; 撤销角色的权限 SQL> revoke connect from admin; ...
比较用户对象——对表格定义、视图、程序单元等作出修改后,将这些修改传递给其他数据库用户或检查修改前后的区别将是非常有用的。这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许您...
实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数过滤字符串 117 2.8 字符串 118 实例083 过滤论坛帖子中的空白和特殊字符 118 实例084 对论坛...
实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数过滤字符串 117 2.8 字符串 118 实例083 过滤论坛帖子中的空白和特殊字符 118 实例084 对论坛...
———————————————— 版权声明:本文为CSDN博主「逆-血」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:...
4.1.2 用户自定义函数的编写 58 4.2 PHP常用函数 59 4.2.1 获得日期时间信息的函数getdate 60 4.2.2 获得当前时间的函数 4.2.2 gettimeofday 61 4.2.3 日期验证函数checkdate 61 4.2.4 格式化本地时间日期的函数date...
3.1.2 可变参数函数 3.1.3 增强版for循环 3.1.4 基本数据的拆、装箱操作(autoboxing和unboxing) 3.2 枚举 3.2.1 枚举的实现原理 3.2.2 枚举的简单应用 3.2.3 枚举的高级特性 3.3 反射 3.3.1 反射的基石——Class类...
:取所有数据表触发器 DESC [Views]:取所有视图 DESC [Functions]:取所有用户自定义函数 DESC [Procedures]:取所有存储过程 <br>6、导出查询结果至Excel文件 选择点击工具栏“文件”-“导出至...
比较用户对象——对表格定义、视图、程序单元等作出修改后,将这些修改传递给其他数据库用户或检查修改前后的区别将是非常有用的。这也许是一个其他的开发环境,如测试环境或制作环境等。而比较用户对象功能则允许...
Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...
5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 ...
5.5.1 Oracle和SQL Server的常用函数对比 240 5.5.2 Oracle和SQL Server的语句区别 244 5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 ...
\——QDialog 卢传富介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用。 14 \ 第3章 基础窗口部件——QWidget 卢传富 \蔡志明首次引入Qt设计器的使用,绘制并实现...
\——QDialog 卢传富介绍了Qt的对话框类QDialog,实现了一个自定义的登录对话框,举例说明了Qt提供的内建对话框类的应用。 14 \ 第3章 基础窗口部件——QWidget 卢传富 \蔡志明首次引入Qt设计器的使用,绘制并实现了...
第10章 构造器——对象制造的工厂 176 10.1 基础知识 176 10.1.1 编写构造器的语法规则 176 10.1.2 访问限制修饰符与构造器 176 10.1.3 构造器与返回类型 179 10.2 创建对象 180 10.3 重载构造器 181 ...
11.3 自定义异常类 212 11.4 checked和unchecked关键字 214 11.4.1 checked 214 11.4.2 unchecked 214 11.5 小结 217 11.6 习题 217 第12章 文件和流 221 12.1 System.IO类 221 12.2 文件类File 222 12.2.1 文件的...