首页 > 解决方案 > 在 PL/SQL 中检查日期

问题描述

我正在设置一个成功的自动工作来累积带薪休假。但是,对于个人时间,他们每年只能一次性获得一笔款项。所以我正在编写一个 pl/sql 语句来检查日期,但我无法让它工作。我不知道我做错了什么!!!

IF to_char(sysdate, 'MM/dd') = '01/01' THEN
    PTO.personal_time := 8;
END IF;

更新:澄清。我想检查日期,如果是一月一号,将个人时间更新为 8 小时。我没有收到任何错误,但个人时间并没有改变。没有翻转,每个人都有自己的一天,所以我只是在 1 月 1 日开始。

标签: oracleplsql

解决方案


TABLE是关键字,您不能将其用作变量;但是,如果您用table变量的名称替换,那么您的代码可以完美运行(假设适当名称/类型的变量已经存在):

DECLARE
  -- declare a type which has a field names "field"
  TYPE item_type IS RECORD(
    field NUMBER
  );

  -- declare an "item" variable
  item item_type;
BEGIN
  -- start of your code
  IF to_char(sysdate, 'MM/dd') = '04/25' THEN
    item.field := 8;
  END IF;
  -- end of your code

  DBMS_OUTPUT.PUT_LINE( item.field );
END;
/

输出:

8

db<>在这里摆弄


推荐阅读