119.Oracle数据库SQL开发之 PLSQL编程——函数

119.Oracle数据库SQL开发之 PLSQL编程——函数

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50086957

函数与过程很相似,唯一区别是函数必须向调用它的语句返回一个值。存储过程和函数有时合起来被称为存储子程序。

1.  创建函数

CREATE FUNCTION语句用于创建函数。

创建一个函数如下:

CREATE FUNCTION circle_area (

  p_radius INNUMBER

) RETURN NUMBER AS

  v_pi   NUMBER := 3.1415926;

  v_areaNUMBER;

BEGIN

  -- circlearea is pi multiplied by the radius squared

  v_area :=v_pi * POWER(p_radius, 2);

  RETURNv_area;

END circle_area;

/

返回一个NUMBER类型的值,计算出圆的面积。

CREATE FUNCTION average_product_price (

 p_product_type_id IN INTEGER

) RETURN NUMBER AS

  v_average_product_priceNUMBER;

BEGIN

  SELECTAVG(price)

  INTOv_average_product_price

  FROM products

  WHEREproduct_type_id = p_product_type_id;

  RETURNv_average_product_price;

END average_product_price;

/

2.  调用函数

可以像调用其他数据库内置函数那样调用自定义的函数。

执行如下:

store@PDB1>select circle_area(2) from dual;

 

CIRCLE_AREA(2)

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

    12.5663704

也可以如下调用:

store@PDB1> select circle_area(p_radius=>4)from dual;

 

CIRCLE_AREA(P_RADIUS=>4)

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

               50.2654816

store@PDB1> select average_product_price(1) fromdual;

 

AVERAGE_PRODUCT_PRICE(1)

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

                      40.33

3.  获取函数的信息

从user_procedures视图中可以获得有关函数的信息;

store@PDB1> select object_name,aggregate,parallelfrom user_procedures where object_name in('CIRCLE_AREA','AVERAGE_PRODUCT_PRICE');

 

OBJECT_NAME

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

AGG PAR

--- ---

AVERAGE_PRODUCT_PRICE

NO NO

 

CIRCLE_AREA

NO NO

4.  删除函数

DROP FUNCTION用于删除函数。

例如:

DROP FUNCTION circle_area;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(119.Oracle数据库SQL开发之 PLSQL编程——函数)