我想将x年份添加到时间戳变量并将其重新分配给相同的变量,就像这样(但不起作用)
d_TIMESTAMP := add_months(d_TIMESTAMP,-360);
我收到错误
错误(48,13):PLS-00103:遇到符号" ="当期望以下之一时:常量异常表long double ref char time timestamp interval date二进制国家字符nchar符号""取代了" ="接着说。
答案 0 :(得分:0)
您需要添加与您要添加的年数相对应的月数。例如,如果要添加一年,则需要添加12个月。试试这个。
d_TIMESTAMP := ADD_MONTHS(d_TIMESTAMP, 12);
有关ADD_MONTHS
的更多信息:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions004.htm
答案 1 :(得分:0)
d_TIMESTAMP
是输入变量,因此无法在代码中修改它。将变量设为IN OUT
变量可以解决问题。像这样:
p_TIMESTAMP IN OUT
然后:
SELECT ADD_MONTHS(p_TIMESTAMP,-360) INTO p_TIMESTAMP
FROM DUAL;