Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2338646
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: Oracle

2010-10-27 11:27:25

 函数用于返回特定数据,可以返回一个或多个值。

  在一个函数中必须包含一个或多个RETURN 语句

  函数调用是PL/SQL表达式的一部分,而过程调用可以是一个独立的PL/SQL语句

  语法结构:

  Sql代码

  CREATE [OR REPLACE] FUNCTION function_name

  (parameter1_name [mode] datatype [DEFAULT|:=value]

  [, parameter2_name [mode] datatype [DEFAULT|:=value],…])

  RETURN return_datatype

  AS |IS

  /*Declarative section is here */

  BEGIN

  /*Executable section is here*/

  EXCEPTION

  /*Exception section is here*/

  END [function_name];

  示例:

  Sql代码

  CREATE OR REPLACE FUNCTION F_FORMATSXDATA(VI_VALUE   IN VARCHAR2,

  VI_FORMSTR IN VARCHAR2)

  RETURN VARCHAR2 IS

  RESULT       VARCHAR2(200);

  V_NUMBERTEMP NUMBER(11, 2);

  BEGIN

  IF VI_FORMSTR = '001' OR VI_FORMSTR = '003' OR VI_FORMSTR = '005' THEN

  RESULT := VI_VALUE;

  ELSIF VI_FORMSTR = '002' THEN

  RESULT := TO_CHAR(VI_VALUE, 'FM999999999990.00');

  ELSIF VI_FORMSTR = '004' THEN

  V_NUMBERTEMP := TO_NUMBER(VI_VALUE, 'FM999999999990.0099') * 100;

  RESULT       := TO_CHAR(V_NUMBERTEMP, 'FM999999999990.00');

  END IF;

  RETURN(RESULT);

  END F_FORMATSXDATA;

阅读(414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~