`
IThead
  • 浏览: 428150 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 创建函数实例

阅读更多
1、创建函数
create [or replace] function function_name
[(parameter_name [in | out | in out] type [,...])]
retutn type
is|as
begin
 function_body;
end;

说明:函数必须有返回值
or replace:如果函数已经存在,则替换现有的函数;
function_name:函数名;
parameter_name :参数名;
in | out | in out:指定参数的模式;
function_body:包含执行任务函数的SQL和PL/SQL语句。
2、函数实例
create or replace function get_publicholidaytime(fromtime in Date, totime in Date, isAvailable in number) return number 
as
  --定义变量
  free_day number :=0;
  mindate Date;
  maxdate Date;
  total number :=0;
  fromdate Date := TO_DATE(to_char(fromtime,'yyyy/MM/dd'),'yyyy/MM/dd');
  todate Date := TO_DATE(to_char(totime,'yyyy/MM/dd'),'yyyy/MM/dd');
begin
  --if语句
  if isAvailable=1 then
    --sql语句
    select min(calendar_date) ,max(calendar_date),count(calendar_date) into mindate,maxdate,total 
    from T_BI_TNT_DATE 
    where calendar_date between fromdate and todate
    and IS_PUBLIC_HOLIDAY=1 ;
    if mindate = fromdate then 
       total := total - 1;free_day := free_day + ((mindate + 1) - fromtime);
    end if;
    if maxdate = todate then
       total := total - 1;free_day := free_day + (totime - maxdate);
    end if;
    if mindate = maxdate then 
       free_day := totime - fromtime;
    else
       free_day := free_day + total;
    end if;
  end if;
  return free_day;
end get_publicholidaytime;

3、调用函数
select get_publicholidaytime(sysdate,sysdate + 1,1) from dual;

4、删除函数
drop function get_publicholidaytime;
0
0
分享到:
评论

相关推荐

    oracle对象创建实例

    在Oracle中,我们还可以创建函数(Function),它是类似于存储过程的可调用单元,但必须返回一个值。函数的创建语法类似于存储过程,只需在PROCEDURE关键字后改为FUNCTION,并在结束处指定返回类型: ```sql CREATE...

    oracle创建触发器实例

    总结来说,这个Oracle创建触发器的实例展示了如何使用触发器进行权限控制和日志记录,同时提供了关于如何处理和阻止非预期的DDL操作的示例。这在大型企业系统中尤其重要,因为它们需要严格的数据安全性和审计追踪...

    oracle pl sql 实例精解 源代码

    本资料集是"Oracle PL/SQL实例精解",提供了丰富的源代码示例,帮助读者深入理解和应用这一技术。 首先,我们来看End_of_Chapter_Exercises.zip,这可能包含了每个章节结束时的练习题或项目。这些练习通常设计得...

    oracle 的函数、存储过程、游标、简单实例

    本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...

    oracle 查询语句实例

    在这个"oracle查询语句实例"的压缩包中,你将找到一系列实用的查询示例,帮助你深入理解和熟练掌握Oracle SQL的用法。 1. **基础查询** - `SELECT`语句:用于从表中检索数据,基本格式是`SELECT column1, column2 ...

    Oracle经典自定义创建函数和存储过程

    自定义函数不能被直接在Java中调用,可以通过存储过程调用函数的方法。本文采用实例的方法,介绍如何在Oracle数据库客户端PL/SQL中创建自定义函数,然后创建相应的存储过程调用该函数,最终实现一个实例计算。

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    PL/SQL是Oracle数据库中用于创建存储过程、函数、触发器、包等数据库对象的主要工具。第4版特别关注了在Oracle 11g环境下的新特性,如性能优化、错误处理和并发控制等。 1. **基础语法**:PL/SQL的基础包括声明变量...

    oracle 在线考试实例(有sql源码答案)

    在Oracle中,可以使用PL/SQL(Oracle的编程语言扩展)来实现这些功能,通过存储过程、触发器和函数来处理业务逻辑。 5. **复杂性**:提到“在线考试系统(复杂)”,可能意味着该系统包含了高级特性,如动态试题...

    oracle精品实例,练习总结

    在"Oracle练习"中,可能会涉及创建、修改和删除这些对象的实例。 4. **表的设计**:良好的数据库设计至关重要,包括合理的数据类型选择,主键和外键的设置,以及适当的约束。实例可能涵盖如何创建符合第三范式的...

    Oracle PL/SQL实例精解 数据库建立代码

    在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨如何在Oracle数据库中使用PL/SQL来构建一个名为"student"的模式,这包括创建数据库对象如表、索引,以及填充样本数据。 首先,"student"模式可能包含一...

    Oracle9i函数大全

    12. **REPLACE()**:这个函数将字符串s1中的所有实例替换为s2。如,REPLACE('he love you','he','i')返回'i love you'。 13. **SOUNDEX()**:SOUNDEX()函数返回一个与输入字符串发音相似的代码,可用于进行基于发音...

    oracle 管道函数+动态游标

    -- 创建strIds对象实例 PIPE ROW (v_strIds); -- 将对象插入结果集中 END LOOP; CLOSE res_sql; EXCEPTION WHEN OTHERS THEN RETURN; END; ``` ### 动态游标 在这个示例中,动态游标通过变量`res_sql`...

    Oracle课程设计 Oracle项目实例 Oracle编程

    PL/SQL是Oracle特有的过程式语言,用于编写存储过程、函数和触发器,是实现业务逻辑和数据库交互的关键。 文档资源是学习过程中不可或缺的部分。它们可能包含了详细的步骤指南、代码示例、问题解决方案以及最佳实践...

    oracle develop 2000实例

    这个实例集是开发者和学习者宝贵的资源,它涵盖了各种功能和应用场景,旨在帮助用户深入理解Oracle Developer 2000的工作原理及其在实际项目中的应用。 Oracle Developer 2000主要由两大部分组成:Oracle Forms和...

    oracle 拆分列实例

    在给定的文件信息中,标题“oracle拆分列实例”明确指出了这一主题,而描述则暗示了实现这一功能的复杂性和耗时性。下面将详细解释如何使用Oracle SQL来实现列的拆分。 ### Oracle拆分列的基本概念 在Oracle中,...

    Oracle PLSQL实例精解(原书第4版) 源码下载

    《Oracle PLSQL实例精解(原书第4版)》是一本深入探讨Oracle数据库编程语言PL/SQL的专业书籍。此书旨在帮助读者掌握PL/SQL的精髓,通过丰富的实例和详细解析,提升在Oracle数据库环境中的开发能力。作者在书中不仅...

    Oracle百分比分析函数RATIO_TO_REPORT() OVER()实例详解

    Oracle数据库中的RATIO_TO_REPORT()函数是一个非常有用的分析函数,尤其在进行数据比例分析和比较时。这个函数能够计算一个值相对于所有值总和的比例,返回的结果是一个百分比。配合OVER()子句,它可以用于全局或者...

    Oracle PL SQL实例精讲(中英文版)

    Oracle PL/SQL是一种强大的编程语言,它将关系数据库的强大功能与结构化编程语言的灵活性结合在一起,主要用于在Oracle数据库环境中创建复杂的业务逻辑和数据处理程序。这个“Oracle PL SQL实例精讲(中英文版)”...

Global site tag (gtag.js) - Google Analytics