【问题标题】:Oracle NLS_DATE_FORMAT using Eclipse使用 Eclipse 的 Oracle NLS_DATE_FORMAT
【发布时间】:2016-02-18 21:45:29
【问题描述】:

我对 NLS_DATE_FORMAT 有疑问。

我是这样运行的:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24: MI: SS';
ALTER SESSION SET NLS_TIME_FORMAT = 'HH24: MI: SSXFF';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24: MI: SSXFF';

在服务器上显示 sysdate => 2016-01-18 => 好的

但是当我从 java 运行 SQL 脚本时,它总是显示 18-FEB-16。 如何在不编辑我的源代码的情况下更改为 2016-01-18?

【问题讨论】:

  • 请显示您的 java 代码,因为此 18-FEB-16 表示可能是因为您打印出返回的 java.sql.Datejava.util.Date 或 ... 对象的格式不是数据库。
  • 我的代码调用了 Oracle 的过程,它在 Proceduce 中显示“18-FEB-16”

标签: java eclipse oracle


【解决方案1】:

我不知道 JAVA 特定的配置,但您可以在 DB 上创建一个 logon 后触发器来更改 NLS 配置:

How to change default nls_date_format for oracle jdbc client

CREATE OR REPLACE TRIGGER LOGINTRG
AFTER LOGON ON DATABASE
BEGIN
   if user = 'MYUSER' then -- if you can do that better
   EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''';
   end if;
END LOGINTRG;

我建议添加一个 if 语句,以便在连接的用户是您的应用程序使用的用户时执行此操作。

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2013-08-26
    • 2019-01-08
    • 2015-01-23
    • 2010-10-01
    • 1970-01-01
    • 2019-12-16
    • 2017-02-22
    • 2016-08-07
    相关资源
    最近更新 更多