【发布时间】:2012-08-16 14:35:06
【问题描述】:
当使用下面的INSERT..SELECT 语句将值插入TARGET_TABLE 时,列lastupdate 的列默认值似乎优先于SELECT 语句产生的值。
即使在SOURCE_TABLE 中始终存在此列的值。
例子:
SOURCE_TABLE 包含lastupdate = 16.08.12 15:41:44
执行语句后,TARGET_TABLE 中的lastupdate 被设置为SYSDATE,例如16.08.12 15:49:14:
INSERT INTO TARGET_TABLE (A, B, C, D, LASTUPDATE, F)
SELECT A, B, C, D, LASTUPDATE, F
FROM SOURCE_TABLE
WHERE B = 'some_value';
CREATE TABLE TARGET_TABLE
(
ID NUMBER NOT NULL,
A VARCHAR2(255 CHAR) NOT NULL,
B VARCHAR2(255 CHAR) NOT NULL,
C CLOB NOT NULL,
D VARCHAR2(255 CHAR),
LASTUPDATE DATE DEFAULT SYSDATE,
E DATE DEFAULT SYSDATE
)
Oracle 版本:Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
我希望将值从SOURCE_TABLE 复制到TARGET_TABLE,而不是设置为SYSDATE。
我在这里缺少什么?谢谢。
【问题讨论】: