基本信息
源码名称:Oracle SQL源代码实例
源码大小:0.25M
文件格式:.zip
开发语言:SQL
更新时间:2023-11-28
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
CREATE TABLE business_dates
(
   location        VARCHAR2 (20)
  ,business_date   DATE
);

INSERT INTO business_dates (location, business_date)
     VALUES ('Americas', DATE '2013-06-03');

INSERT INTO business_dates (location, business_date)
     VALUES ('Europe', DATE '2013-06-04');

INSERT INTO business_dates (location, business_date)
     VALUES ('Asia', DATE '2013-06-04');

CREATE OR REPLACE FUNCTION get_business_date (p_location VARCHAR2)
   RETURN DATE
   DETERMINISTIC
   RESULT_CACHE
IS
   v_date   DATE;
   dummy    PLS_INTEGER;
BEGIN
   DBMS_LOCK.sleep (5);

   SELECT business_date
     INTO v_date
     FROM business_dates
    WHERE location = p_location;

   RETURN v_date;
END get_business_date;
/

CREATE TABLE transactions
AS
       SELECT ROWNUM rn
             ,DECODE (MOD (ROWNUM - 1, 3),  0, 'Americas',  1, 'Europe',  'Asia')
                 location
             ,DECODE (MOD (ROWNUM - 1, 2)
                     ,0, DATE '2013-06-03'
                     ,DATE '2013-06-04')
                 transaction_date
         FROM DUAL
   CONNECT BY LEVEL <= 20;

SET TIMING ON

SELECT *
  FROM transactions
 WHERE transaction_date = get_business_date (location);

SET TIMING OFF