一、自定义函数的定义和调用入门
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自定义日期函数、你值得拥有!
oracle自定义函数的总结,主要对如何定义函数以及使用。
oracle 自定义函数 解析文件以“|”分割字符串
Oracle自定义函数,很详细的教程,各种函数自定义的详细讲解。
Oracle自定义聚合函数,分析函数.
一、函数的创建、调用和权限1、创建函数create or replace function 函数名(参数1 模式 数据类型,) return 数据类型as --
* 自定义聚合函数 wmsys.... * 由于聚合函数只支持一个参数,这里使用对象类型实现传入多个参数 * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
oracle数据库,使用自定义函数,实现了金额的大写转换。sql语句中,直接调用此函数即可得到金额大写。
主要介绍了Oracle自定义脱敏函数的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
关于Oracle自定义聚集函数的使用 。
学习 游标 视图 自定义函数不二选择,我觉得看完之后学到东西了
包含自定义身份证函数,小写转大写等等。自己总结了很长时间,以后会继续更新的。
ORACLE crc3函数,将字符类型转换成唯一的数字类型,例如CSDN,经过crc32函数转换后,得到的值为-1016176976
Oracle效验统一代码正确性的自定义函数,效验规则以国标为准.
NULL 博文链接:https://jadeluo.iteye.com/blog/1213549
oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
自定义函数不能被直接在Java中调用,可以通过存储过程调用函数的方法。本文采用实例的方法,介绍如何在Oracle数据库客户端PL/SQL中创建自定义函数,然后创建相应的存储过程调用该函数,最终实现一个实例计算。
存储过程、自定义函数、包及触发器的详细,对存储过程不熟悉的人有帮助