首页 > 解决方案 > oracle Alter Session NLS FORMAT for bulk insert statements - 行为不符合预期

问题描述

我已经以插入语句的格式从 SQL DB 中导出了表信息。许多表包含 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');

标签: oraclesql-insertdate-format

解决方案


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


推荐阅读