【PL/SQL】测试函数时,日期参数的输入格式

本文介绍了如何在PL/SQL中创建和使用一个函数来获取指定日期的余额。该函数接收日期和货币代码作为参数,并从数据库表中返回相应的余额。文章还提供了创建测试表、插入数据以及创建和调用函数的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果在PL/SQL中测试,输入格式为xxxx/xx/xx;

如果使用select function_name(xx,xx) from dual; 测试函数时,日期参数需要使用to_date('xxxx-xx-xx','YYYY-MM-DD') 或者date'xxxx-xx-xx' 进行类型转换。

下面是一个函数例子,函数中V_QRP_RQ参数类型为date:

--创建测试表,并插入数据
CREATE TABLE ccb_gyb (
ACCOUNTING_DATE DATE,
RMB_YTD_BALANCE NUMBER,
CNY_YTD_BALANCE NUMBER,
USD_YTD_BALANCE NUMBER
);
CREATE UNIQUE INDEX CCB_GYB_INX ON CCB_GYB (ACCOUNTING_DATE);

INSERT INTO ccb_gyb VALUES (DATE'2017-12-01',12,17,4);
COMMIT;

--创建函数
CREATE OR REPLACE FUNCTION GETCURRBAL(V_QRP_RQ   DATE, --报表日期
                                      V_QRP_CODE VARCHAR2 --币种
                                      ) RETURN NUMBER IS
  V_AMOUNT NUMBER;
  V_DATE   DATE;
BEGIN
  SELECT ACCOUNTING_DATE
    INTO V_DATE
    FROM CCB_GYB
   WHERE ACCOUNTING_DATE = V_QRP_RQ;
  IF V_QRP_CODE = 'RMB' THEN
    SELECT RMB_YTD_BALANCE
      INTO V_AMOUNT
      FROM CCB_GYB
     WHERE V_QRP_CODE = 'RMB'
       AND ACCOUNTING_DATE = V_DATE;
  END IF;
  IF V_QRP_CODE = 'CNY' THEN
    SELECT CNY_YTD_BALANCE
      INTO V_AMOUNT
      FROM CCB_GYB
     WHERE V_QRP_CODE = 'CNY'
       AND ACCOUNTING_DATE = V_DATE;
  END IF;
  IF V_QRP_CODE = 'USD' THEN
    SELECT USD_YTD_BALANCE
      INTO V_AMOUNT
      FROM CCB_GYB
     WHERE V_QRP_CODE = 'USD'
       AND ACCOUNTING_DATE = V_DATE;
  END IF;
  RETURN V_AMOUNT;
END;
(1)使用PL/SQL调用,输入参数格式为:

(2)使用select调用,如下:

SELECT GETCURRBAL(date'2017-12-1','RMB') FROM dual;

   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值