oracle - 在 Oracle 过程中使用 CASE 语句不起作用
问题描述
我写了下面CASE
的声明,以便我的逻辑起作用。但它不起作用并给我错误
错误(224,122):PLS-00103:在预期以下情况之一时遇到符号“)”:* & = - + < / > 在 else 结尾是 mod 余数不是 rem 当 <an exponent (**)> <> or != or ~= >= <= <> and or like2 like4 likec || member submultiset 符号“end”被替换为“)”以继续。
下面是我的代码:
V_AMTINMONTH := (CASE V_DATEVAR_VALUE WHEN 'START' THEN V_AMTINMONTH WHEN 'END' THEN (V_AMTINMONTH - V_NOOFDAYSINMONTH + 1));
解决方案
尝试
v_amtinmonth :=
CASE
WHEN v_datevar_value = 'START'
THEN
v_amtinmonth
WHEN v_datevar_value = 'END'
THEN
v_amtinmonth - v_noofdaysinmonth + 1
END;
推荐阅读
- python - 如何将 ssh 密钥复制到 Python Docker 映像中?
- ios - Flutter 键盘:更改底部操作/选项 IOS
- python-3.x - 使用请求从登录后面的网页中拉表?
- python - 如何判断我的算法是多项式还是指数级?如果是多项式,以什么领先顺序?
- java - 带枚举的 ArrayList
- sql - 基于ID和时间间隔的SQL求和
- css - 单击下拉菜单显示一个白框
- python - 如何提高 LSTM Multiclass 文本分类准确率?
- sql - 如果未提供不受影响的值,则插入重复键失败?
- reactjs - 使用变量获取 graphQL 数据的最佳解决方案