ORACLE数据库PL/SQL编程之把过程与函数说透(1)
过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据。在本文中,主要介绍:
1、创建存储过程和函数。
2、正确使用系统级的异常处理和用户定义的异常处理。
3、建立和管理存储过程和函数。
创建函数
1. 创建函数
语法如下:
- CREATE [OR REPLACE] FUNCTION function_name
- (arg1 [ { IN | OUT | IN OUT }] type1
- [DEFAULT value1],
- [arg2 [ { IN | OUT | IN OUT }] type2 [DEFAULT value1]],
- ......
- [argn [ { IN | OUT | IN OUT }] typen [DEFAULT valuen]])
- [ AUTHID DEFINER | CURRENT_USER ]RETURN return_type
- IS | AS
- <类型.变量的声明部分> BEGIN
执行部分
RETURN expressionEXCEPTION
异常处理部分END function_name;
IN,OUT,IN OUT是形参的模式。若省略,则为IN模式。IN模式的形参只能将实参传递给形参,进入函数内部,但只能读不能写,函数返回时实参的值不变。OUT模式的形参会忽略调用时的实参值(或说该形参的初始值总是NULL),但在函数内部可以被读或写,函数返回时形参的值会赋予给实参。IN OUT具有前两种模式的特性,即调用时,实参的值总是传递给形参,结束时,形参的值传递给实参。调用时,对于IN模式的实参可以是常量或变量,但对于OUT和IN OUT模式的实参必须是变量。
一般,只有在确认function_name函数是新函数或是要更新的函数时,才使用OR REPALCE关键字,否则容易删除有用的函数。