oracle - 在 PL/SQL 中检查日期
问题描述
我正在设置一个成功的自动工作来累积带薪休假。但是,对于个人时间,他们每年只能一次性获得一笔款项。所以我正在编写一个 pl/sql 语句来检查日期,但我无法让它工作。我不知道我做错了什么!!!
IF to_char(sysdate, 'MM/dd') = '01/01' THEN
PTO.personal_time := 8;
END IF;
更新:澄清。我想检查日期,如果是一月一号,将个人时间更新为 8 小时。我没有收到任何错误,但个人时间并没有改变。没有翻转,每个人都有自己的一天,所以我只是在 1 月 1 日开始。
解决方案
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<>在这里摆弄
推荐阅读
- angular - 运行时重新定位角度组件视图
- excel - 带循环和步骤的 VBA 输入框
- d3.js - 使用 d3js 的平行坐标的初始值
- javascript - 上传大文件 (100mb+) 只会使 Chrome 崩溃
- c# - 如何验证文本框不接受电子邮件ID
- android - Microsoft appcenter 并上传 APK,无需在 Ionic 3 应用程序上集成他们的 SDK
- python - 导入pybel后死内核
- java - 在不使用 FileUtils 的情况下在目录 java 中添加新文件之前删除旧文件
- python - 怎么获得
包含与正则表达式匹配的文本
- maven - 如何在关键的 Cloud Foundry 中部署多模块 maven spring boot 项目?