Oracle SQL Developer 在导出时忽略 NLS

Posted

技术标签:

【中文标题】Oracle SQL Developer 在导出时忽略 NLS【英文标题】:Oracle SQL Developer ignores NLS when exporting 【发布时间】:2018-02-23 20:58:15 【问题描述】:

我无法让 SQL Developer(版本 4.0.3.16)在导出数据时应用日期格式。我正在尝试导出到 SQL(即插入语句)。

我将 NLS 日期格式设置为 DD-MON-RRRR HH24.MI.SS 如下:

在工具中实际查看数据似乎没问题,但是当它导出到 SQL 时,它会恢复为默认值,如下所示:

Insert into EMAIL_ADDRESS (EMAIL_ADDRESS_ID,USERID,ADDRESS,LAST_UPDATE_TS) values (100,'user','fake@email.org',to_date('24-AUG-08','DD-MON-RR'));

有什么帮助吗?

谢谢!

【问题讨论】:

您的 Windows 日期格式设置为什么?在控制面板中检查它。 您的 SQL Developer 副本是什么版本?在我的 (4.1.5.xxx) 上,它按预期工作,自动生成的 INSERT 语句使用 NLS_DATE_FORMAT 设置。 @Littlefoot - 为什么 Windows 日期格式很重要? (我什至不知道有这样的东西存在。) I can't install software on this computer - 你不需要安装。没有安装程序,下载一个ZIP文件(没有其他的),解压到任意目录,运行。 @krokodilko - 当雇主告诉你“你不能在这台机器上安装软件”时,他们通常也意味着从 zip 文件下载和解压缩 - 他们并不意味着 安装 字面意思(如使用安装程序)。 【参考方案1】:

是时候升级了。

使用当前版本 17.4 - 比版本 4.0 新 4 年 - 这可以按预期工作。

查询数据。

导出到 INSERT。

转到剪贴板,让我们将其粘贴回工作表...并检查日期格式是否符合我们的偏好设置。

NLS 参数中定义的日期格式匹配。

如果您选择不同的路径,请随意回复您所看到的不同 - 有很多不同的方法可以进行 EXPORT - 但在处理 DATE 时,所有这些方法都应优先考虑 NLS DATE FORMAT。

如果您无法升级,试试这个 - 使用格式提示手动插入生成。

select /*insert*/ to_char(hire_date, 'DD-MON-YYYY HH24.MI.SS') hiredate from employees;

【讨论】:

它在我使用的版本 4.1 上按预期工作。这会在 4.0(OP 版本)和 4.1 之间发生变化吗? 如果有错误,@mathguy,是的。回答 2013 年发布的软件问题很有趣【参考方案2】:

我从this official link 下载了 4.0.3 (4.0.3.16.84) 版本


我以这种方式更改了 NLS 参数:


具有 DATE/TIMESTAMP/TIMESTAMPTZ 列的表的导出工作正常

SET DEFINE OFF;

Insert into TEST.DAT (X,D,T,TZ) values (
     1,
     to_date('23-FEB-2018 22.24.15','DD-MON-RRRR HH24.MI.SS'),
     to_timestamp('23-FEB-18 10.24.15.662000000 PM','DD-MON-RR HH.MI.SSXFF AM'),
     to_timestamp_tz('24-FEB-18 05.44.25.000000000 AM EUROPE/BELGRADE','DD-MON-RR HH.MI.SSXFF AM TZR')
);

也许您可以从 Oracle 网站下载相同的版本? 此版本似乎包含错误修复。

【讨论】:

【参考方案3】:

非常感谢您的帮助。我不确定 100% 确定会发生什么,但我今天再次尝试重现该问题,它似乎在没有升级(甚至重新启动)的情况下按预期工作。

还是谢谢!

【讨论】:

以上是关于Oracle SQL Developer 在导出时忽略 NLS的主要内容,如果未能解决你的问题,请参考以下文章

借助PL/SQL Developer将Oracle某用户数据表导出

使用 oracle sql developer 将 utf-8 数据导出到文本文件

如何在 oracle data modeler/sql developer 中将 ERD 图导出到图像

plsql developer如何导出数据库,不是导出表!

oracle sql developer 能否直接修改sql查询出的数据?

pl/sql Developer如何导入dump文件