锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Oracle PLSQL语言初级教程之过程和函数

时间:2023-05-03 20:37:00 bsq015c振动变送器

Oracle PL/SQL语言初级教程的过程和函数

过程和函数

过程和函数以编译的形式存储在数据库中,函数可以没有参数或多个参数和返回值。该过程有零或多个参数,没有返回值。函数和过程可以通过参数列表接收或返回零或多个值。函数和过程的主要区别不在于返回值,而在于它们的呼叫方式。该过程被调用为一个独立的执行语句:

pay_involume(invoice_nbr,30,due_date);

函数以合法的表达式调用:

order_volumn:=open_orders(SYSDATE,30);

语法如下:

CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name

[parameter_lister]

{AS|IS}

declaration_section

BEGIN

executable_section

[EXCEPTION

exception_section]

END [procedure_name]

语法如下:

paramter_name mode datatype [(:=|DEFAULT) value]

mode有三种形式:IN、OUT、INOUT。

IN这意味着在调用过程中,实际参数的值被传递给过程,形式参数被认为只读取。当过程结束时,控制将返回控制环境,实际参数的值不会改变。

OUT在调用过程中,实际参数的值将被忽略。过程中的内部形式参数只能被赋值,而不能读取数据。过程结束后,将给出实际参数。

INOUT这种模式是IN和OUT组合;实际参数的值将在过程中传递给形式参数,形势参数的值也可以读写。过程结束后,将给出实际参数。

创建函数的语法与过程的语法基本相同。唯一的区别是函数有RETUREN子句

CREATE [ OR REPLACE] FINCTION [schema.]function_name

[parameter_list]

RETURN returning_datatype

{AS|IS}

declaration_section

BEGIN

executable_section

[EXCEPTION]

exception_section

END [procedure_name]

执行部分函数必须是哟或多个return语句。

单行函数和组函数可用于创建函数,例如:

CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER)

RETURN NUMBER

IS

pi NUMBER=ACOS(-1);

RadiansPerDegree NUMBER;

BEGIN

RadiansPerDegree=pi/180;

RETURN(SIN(DegreesIn*RadiansPerDegree));

END

-----------------------------------------------------------

包是将过程、函数和数据结构捆绑在一起的容器;包由函数头、过程头和外部可视数据结构两部分组成;另一部分是包的主体(package body),包主体包括所有捆绑过程和函数的声明、执行和异常处理。

打包的PL/SQL程序和未包装的程序有很大的不同。包数据一直存在于用户的整个会话过程中。当用户获得包的执行授权时,就等于获得包规范中所有程序和数据结构的权限。但不能只授权包中的某个函数或过程。包可以很重

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章