Проверка даты в PL / SQL - PullRequest
       5

Проверка даты в PL / SQL

1 голос
/ 25 апреля 2020

Я настраиваю автоматическое задание на получение оплачиваемого отпуска. Однако за личное время они получают только единовременную выплату каждый год. Поэтому я работаю над оператором pl / sql, чтобы проверить дату, но не могу заставить его работать. Я не уверен, что я делаю неправильно !!!

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

обновление: уточнить. Я хочу проверить дату и, если это первое января, обновить количество личного времени до 8 часов. Я не получаю никаких ошибок, но количество личного времени не меняется. Там нет пролонгации, и каждый получает один личный день, так что я просто пришел 1 января

1 Ответ

1 голос
/ 25 апреля 2020

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

дБ <> скрипка здесь

...