用于批量插入语句的 oracle Alter Session NLS FORMAT - 未按预期运行

oracle Alter Session NLS FORMAT for bulk insert statements - not behaving as expected

我已经从 SQL 数据库中以插入语句的格式导出了 table 信息。许多 table 包含 YYYY-MM-DD HH24:MI:SS 格式的时间戳信息。由于有数百个这样的语句,所以我在每个日期添加 TO_DATE() 语句是不现实的。我认为更改会话 NLS DATE 格式可以解决此问题,但我仍然收到有关 ORA-01843: not a valid month 的错误。

列数据类型为 TIMESTAMP

示例:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS' 

INSERT INTO gcGovernance (id, userID, grantAppID, grantAppUUID, 
grantCommCatID, grantApprovalCmnt, grantApprovalDate) VALUES (758, 163, 
408, 'iahfahfahashvai', 0, '', '2016-12-20 
14:32:17');

如果接收列是TIMESTAMP,那么需要设置NLS_TIMESTAMP_FORMAT,而不是NLS_DATE_FORMAT

你可以尝试使用格式timestamp'YYYY-MM-DD HH24:MI:SS'

在该示例中 insert 语句如

timestamp'2016-12-20 14:32:17' 用于 grantApprovalDate 列。

Demo