我遇到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。?
答案 0 :(得分:1)
我不知道JAVA特定的配置,但你可以在DB上创建一个after 登录触发器来改变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语句。