oracle自定义函数

转载 2011年01月13日 16:46:00

一个简单的自定义函数:

create or replace function get_min_value(dbl_value1 in number, dbl_value2 in number)
return number
is
begin
       if dbl_value1<dbl_value2 then
         return dbl_value1;
       else
         return dbl_value2;
      end if;
end;

一、自定义函数的定义和调用入门
1 、一个最简单的自定义函数Fun_test1的定义。
create or replace function Fun_test1(p_1 number)--Fun_test1是函数名,有一个输入参

数p_1,是number型的。返回值也是number型的
  return number
IS
begin
if p_1>0 then
return 1;
elsif p_1=0 then
return 0;
else
return -1;
end if;
end;
--这个函数只是可以知道自定义函数的定义和格式。其实没什么用途。

2、Fun_test1自定义函数的调用的存储过程Pro_Fun_test1_1示例:
create or replace procedure Pro_Fun_test1_1(
p1_in in number,
p2_out out number
)
AS
begin
p2_out:=Fun_test1(p1_in);
end Pro_Fun_test1_1;
--一个输入参数,一个输出参数
3、Fun_test1自定义函数的调用的存储过程Pro_Fun_test1_2示例:
create or replace procedure Pro_Fun_test1_2(
p1_in in number,
p2_out out number
)
AS
t_1 number;
begin
select Fun_test1(p1_in)+100 INTO p2_out
from bill_org where org_ID=1;

end Pro_Fun_test1_2;
--自定义函数的调用方法和Oracle的其它内部函数是一样的。

二、包的定义和使用入门
包一般是过程和函数的集合,对过程和函数进行更好的封装,一般不针对字段。
包的构成包括包头和包体。
1、包头的定义:
包头仅仅只是对包中的方法进行说明,而没有实现
语法:
create or replace package myPackage_1
      is
       procedure syaHello(vname varchar2);--申明了该包中的一个过程
      end;
2、包体的定义:
包体是对包头中定义的过程、函数的具体实现。
create or replace package body myPackage_1
 is
 procedure syaHello(vname varchar2)--对包中定义的过程的实现
 is
 begin
 dbms_output.put_line('Hello '||vname);
 end;
 end;
要注意的是:
create or replace package后面的名称必须和create or replace package body后面的名称

一致,
如果将create or replace package body后面的名称改为,'MYPACKAGE'
否则将会出现诸如下面的错误:
必须说明标识符 'MYPACKAGE'
3、调用包用的自定义方法:
create or replace procedure Pro_test_package(
p1_in string
)
AS
begin
myPackage_1.syaHello(p1_in);
end Pro_test_package;

oracle字符串分割自定义函数

  • 2017年09月20日 10:26
  • 1KB
  • 下载

Oracle 自定义函数

  • 2015年08月14日 20:06
  • 23KB
  • 下载

Oracle解析json字符串 获取指定值自定义函数代码

http://www.oschina.net/code/snippet_1162040_48289 [1].[代码] ty_tbl_str_split 跳至 [1] [2] [3...
  • e_wsq
  • e_wsq
  • 2016年03月07日 14:06
  • 2357

Oracle自定义聚合函数-分析函数

  • 2016年11月08日 16:47
  • 29KB
  • 下载

oracle自定义函数示例--实现时间和数字的来回转换

用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的参数有3种类型: (1)in参数类型:表示输入给函数的参数,该参数只能用于传值,不能被赋值。 (2)out参数类型:表示参数在...

Oracle存储过程和自定义函数

概述PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。相同点: 完成特定功能的程序 不同点:是否用r...

Oracle10g自定义聚合函数(字符串拼接)

* 自定义聚合函数 wmsys.wm_concat 替换办法     * 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串     * 可自定义指定分隔符separa...

Oracle自定义聚集函数

节选自《剑破冰山——oracle开发艺术》一书,书籍销售地址: http://product.china-pub.com/197199 http://product.dangdang.com/pr...

oracle按开始时间和结束时间进行数据拆分的自定义函数

oracle按开始时间和结束时间进行数据拆分的自定义函数 故事背景:前段时间做数据报表时,遇到统计每个月的的住院人次(注意是“人次”,不是“人数”)怎么办呢,查询了资料(度娘),只发现了“兔子”...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle自定义函数
举报原因:
原因补充:

(最多只允许输入30个字)