`

Oracle 自定义函数

阅读更多

http://www.oracle.com.cn/archiver/?tid-17996.html

 

1.在一段时间内的工作日(天数)

create or replace FUNCTION WORKDAYS
( startd IN DATE
, endd IN DATE
) RETURN NUMBER AS
days number;
BEGIN
  select (trunc(endd-startd)-((case WHEN (8-to_number(to_char(startd,'D')))
 > trunc(endd -startd)+1 THEN 0 ELSE trunc((trunc(endd-startd)-  
 (8-to_number(to_char(startd,'D'))))/7)+1 END) +(case WHEN  mod(8-to_char(startd,'D'),7) 
 > trunc(endd - startd)-1  THEN  0  ELSE  trunc((trunc(endd-startd)-  
(mod(8-to_char(to_date('2010-3-1','yyyy-MM-dd'),'D'),7)+1))/7) + 1 END))) as workingdays into days from dual;
  RETURN days;
END WORKDAYS;

 

2.

create or replace
FUNCTION GETWORKDAY2
( sdate IN DATE
, edate IN DATE
) RETURN NUMBER AS
 holidays number;
 st Date;
 en Date;
BEGIN
holidays:=0;
 for h in (select holiday_id hid from T_ATTE_HOLIDAYS) loop
    select DATE_START into st from T_ATTE_HOLIDAYS where holiday_id=h.hid;
    select DATE_END into en from T_ATTE_HOLIDAYS where holiday_id=h.hid;
     if(st>sdate and en>edate and edate>=st) then
      begin
      --holidays:=edate-st+1+holidays;
        holidays:=workdays(st,edate+1)+holidays;
       dbms_output.put_line('left');
      end;
      Elsif(st<=sdate and en>edate) then
        begin
       -- holidays:=edate-sdate+1+holidays;
          holidays:=workdays(sdate,edate+1)+holidays;
         dbms_output.put_line('midder');
        end;
      Elsif(st<sdate and en<edate and sdate<en) then
        begin
       -- holidays:=en-sdate+1+holidays;
          holidays:=workdays(sdate,en+1)+holidays;
         dbms_output.put_line('right');
        end;
      Elsif(st>=sdate and en<=edate) then
        begin
       -- holidays:=en-st+1+holidays;
          holidays:=workdays(st,en+1)+holidays;
         dbms_output.put_line('outer');
        end;
      else
        begin
        holidays:=0+holidays;
         dbms_output.put_line('else');
        end;
      end if;
  end loop;
  RETURN holidays;
END GETWORKDAY2;

分享到:
评论

相关推荐

    14.Oracle自定义函数1

    在 Oracle 数据库中,自定义函数是一种非常重要的特性,允许用户根据需求创建自己的功能模块,以扩展数据库的内置功能。本文将详细讲解如何创建、调用和管理自定义函数,以及讨论它们在实际应用中的优缺点。 一、...

    oracle自定义函数总结

    本文将详细介绍Oracle自定义函数的定义、使用方法以及一些高级特性。 #### 二、基本语法与定义 1. **定义函数的基本语法**: ```sql CREATE [OR REPLACE] FUNCTION function_name (参数列表) RETURN 返回类型 ...

    oracle 自定义函数 解析文件以“|”分割字符串

    oracle 自定义函数 解析文件以“|”分割字符串

    Oracle自定义函数

    Oracle自定义函数,很详细的教程,各种函数自定义的详细讲解。

    oracle自定义日期函数

    Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...

    Oracle自定义加密解密函数:数据安全合规·数据脱敏·加密存储高效解决方案

    3、兼容性与灵活性: 适用于各种 Oracle 数据库环境,无论是本地部署还是云数据库,均可无缝集成,满足不同场景需求。 4、详尽注释文档: 提供了完整的函数代码及详细的注释说明,便于用户快速理解与应用,同时降低...

    Oracle函数返回表

    Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。

    oracle自定义函数实现金额转换为大写

    oracle数据库,使用自定义函数,实现了金额的大写转换。sql语句中,直接调用此函数即可得到金额大写。

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

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序

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

    Oracle 自定义聚合函数-分析函数 Oracle 自定义聚合函数是一种强大且灵活的功能,允许用户根据自己的需求创建自定义的聚合函数。聚合函数是一种特殊的函数,它可以对一组数据进行处理和计算,并返回一个结果。 ...

    手机号安全脱敏工具方案:Oracle自定义函数实现中间四位替换为4位星号

    1. 高效性:此函数针对Oracle数据库环境进行了优化,能够快速处理大量数据,显著提升数据处理效率。 2. 安全性:通过将手机号码的中间四位替换为星号(*),有效防止了敏感信息泄露,满足GDPR等国际隐私法规的要求。 3...

    Oracle统一社会信用代码自定义效验函数

    在IT行业中,数据库管理系统(DBMS)如...总结来说,这个Oracle自定义函数是针对统一社会信用代码的效验工具,遵循国家的效验规则,确保在数据库中存储的USCC信息的准确无误,这对于在中国进行合规操作的企业至关重要。

    hibernate 调用oracle函数

    1. **创建Oracle函数**:在Oracle数据库中,我们首先需要创建一个自定义函数。例如,我们可以创建一个计算两个数字之和的函数`ADD_NUMBERS`: ```sql CREATE OR REPLACE FUNCTION ADD_NUMBERS(p_num1 NUMBER, p_...

    ORACLE CRC32函数

    ### ORACLE CRC32函数详解 #### 一、概述 在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成...

    Oracle自定义脱敏函数的代码详解

    Oracle自定义脱敏函数是数据库管理中用于保护敏感数据的一种常见方法,尤其是在处理用户个人信息时。本文将深入解析Oracle自定义脱敏函数的实现细节,以确保在数据共享、备份或分析时不泄露关键信息。 首先,我们来...

    Oracle游标视图和自定义函数

    ### Oracle游标、视图和自定义函数 #### 1. 游标 **1.1 游标的优势和类型** 在数据库应用开发过程中,游标作为一种强大的工具,为开发者提供了一种处理从表中检索出的数据的有效方法,特别是在需要逐条处理数据...

    Oracle存储过程、自定义函数、动态建表存储过程等例子

    2. **Oracle自定义函数**: 自定义函数与存储过程类似,但它们通常用于返回单个值。函数可以在查询中直接使用,比如在SELECT语句中,增强查询的灵活性。比如,你可以编写一个计算折扣的函数,根据客户等级返回不同...

Global site tag (gtag.js) - Google Analytics