pl/sql 过程、函数
来源:互联网 发布:最好java培训 编辑:程序博客网 时间:2024/05/22 14:06
pl/sql中proceduce过程与func函数均为一个程序块,是为完成特定功能的pl/sql语句集。并可接受三种类型的参数。
相同点在于:
1.均可使用out类型参数返回值。
2.均由声明、执行和异常处理三部分组成。
3.均可以接受形参默认值。
4.都可以使用位置表示法和名称表示法进行调用。
不同点在于:函数必须要有返回值,即调用函数时要用一个变量来接受函数的返回值。
一般推荐若返回多个值,使用过程。
若返回一个值,使用函数。
它们都接受三种类型的参数: in、out、in out。
in类型参数:将外部的参数值传递进入程序块中,但是无法在程序块中更改该参数的值。即类似于常量。采用引用传递。
out类型参数:将内部的参数值传出程序块中,与in类型相反,可以在程序块中更改该参数的值。但是无论外部赋什么值,传入程序块中均被初始化为null。
并且采用值传递的形式。当程序块正常结束无异常或错误发生,则将该值传递给外部参数,否则不会传递给外部参数。可以加上nocopy关键字来使用引用传递模式。
in out类型参数:该类型参数可以传递外部参数值进入程序块中,也可以传出内部参数值给外部参数。采用变量值传递。
注意要点:
1.形参只能决定参数的类型,无法决定精度。只有实参可以决定精度。
2.out类型变量在程序块中赋值时不能超过实参精度的限制。
3.形参可以使用默认值。
4.可以采用名称赋值法。如 pout => v_pout,pinout => v_pinout
过程基本语法结构:
创建:
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [ IN | OUT | IN OUT ] type [,...])]
{ IS | AS }
[ variable type [,...] ]
BEGIN
procedure_body
END procedure_name; -----procedure_name可以不写
删除:
DROP PROCEDURE procedure_name;
调用过程:
1. excute指令调用。
2. pl/sql代码块中直接调用。
函数基本语法结构:
创建:
CREATE [OR REPLACE] FUNCTION function_name [(parameter_name [ IN | OUT | IN OUT ] type [,...])]
RETURE type
{ IS | AS }
[ variable type [,...] ]
BEGIN
function_body
END function_name; -----function_name可以不写
删除:
DROP FUNCTION function_name;
调用函数:
无法直接调用,只能作为表达式的一部分进行调用。必须接受返回值,否则报错。
查看过程、函数和包的有关信息:
select * from user_procedures where object_name='my_proc';
查看过程函数代码:
select text from user_source where name = 'MY_PROC';
查看包代码:
select text from user_source where name = 'MY_PKG' AND type = 'PACKAGE';
查看触发器代码:
select text from user_source where name = 'MY_TRIG';
显示错误:
show errors procedure my_proc/function my_func/package my_pack
- pl/sql 过程、函数
- pl/sql 过程 函数
- PL/SQL过程和函数
- PL/SQL-存储过程、函数
- PL/SQL 过程与函数
- ORACLE中的PL/SQL过程和函数
- PL/SQL的存储过程和函数
- PL-SQL 存储函数和存储过程
- PL/SQL的存储过程和函数
- PL/SQL的存储过程和函数
- PL/SQL Developer调试存储过程,函数
- PL/SQL的存储过程和函数
- PL/SQL之六过程与函数
- PL/SQL存储函数,存储过程
- PL/SQL 基础---函数、存储过程、包
- PL/SQL--存储过程与函数
- PL/SQL 存储过程和存储函数
- PL/SQL中的存储过程与函数
- Asp.net 知识准备二
- 阿里云centos6.7下yum安装nginx最新版
- 自己整理的计算机视觉领域稍微容易中的期刊(第一版)
- linux下ntp对时设置
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
- pl/sql 过程、函数
- java集合框架03——ArrayList和源码分析
- 【腾讯内部工具分享】内存泄漏分析工具tMemoryMonitor
- Windows下面如何安装Beautiful Soup
- 常见的排序算法C++实现
- OPlayer
- GridView之BaseAdapter的用法简单案例(二)【子元素item的高度暂时不知道控制】
- 剑指offer-面试题36:数组中的逆序对
- Android EditText 自定义带删除按钮