如何更改oracle jdbc客户端的默认nls_date_format

时间:2009-01-15 17:08:26

标签: oracle jdbc

我在Oracle 10.2 XE上定义了全局nls_date_format,如下所示:

alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;

在Windows上连接时,客户端会使用会话特定格式覆盖它,因此我需要在每个会话开始时运行此行:

alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

但是,我有一些我无法更改的自定义代码(jdbc代码,使用ojdbc14.jar),所以在接收连接时我无法执行此行。有没有办法为所有jdbc连接更改nls_date_format的默认值?也许在连接字符串中添加一些东西,或者我可以使用一些环境变量?

顺便说一句,sqlplus和sqldeveloper也用自己的格式覆盖了服务器的格式,但我发现了如何更改默认值,所以问题只在于jdbc连接。

2 个答案:

答案 0 :(得分:5)

在登录后触发器中设置nls日期格式

答案 1 :(得分:5)

谢谢,这对我有用。 我插入的触发器是:

CREATE OR REPLACE TRIGGER LOGINTRG
AFTER LOGON ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''';
END LOGINTRG;