如何在开发和集成之间将Oralce语言环境配置为相同 问题:上下文:帮助

问题描述

问题:

我的Java 作业在开发环境中运行良好,但是当我将其部署在集成服务器上时,却遇到了问题。这使我认为我的开发人员之间存在配置差异。环境和集成服务器。

上下文:

我不是Java或Spring专家。这是一个问题。

我调用了MY.PROCEDURE段PL / SQL代码,该代码又调用了Oracle视图。

Oracle视图中的以下指令在我的开发中可以正常工作。环境,但是在集成服务器上会引起问题:

T1.DATE between '01.07.2015' and  '07.07.2020'

丑陋

Caused by: java.sql.SQLDataException: ORA-01843: not a valid month
ORA-06512: at "MY.PROCEDURE",line 36

当我用TO_DATE指定日期格式时,它消失了。我知道这是个好习惯,显然对于我们的团队来说应该是强制性的。无论如何,我想了解Dev和Int之间的配置差异。

帮助

有什么想法在部署此东西时应该在哪里配置语言环境?

我希望我可以在本地设置本地(或日期格式),而无需修改Java可交付结果。有可能吗?

解决方法

您的NLS_DATE_FORMAT似乎在您的环境中有所不同。在每种环境中运行以下命令:

select value
from   nls_session_parameters
where  parameter = 'NLS_DATE_FORMAT';

这就是为什么您应该始终指定格式而不依赖于隐式转换的原因。如有必要,您可以运行以下命令:

alter session set nls_data_format = 'mm.dd.yyyy';

或应该是“ dd.mm.yyyy”。从给定的信息无法确定。

,

开发与集成服务器之间的环境差异首先是Swiss(FR)设置操作系统。而且...该服务器是具有默认英语版本的Linux。

所以您开始看到我要去的地方。

告诉Java您使用'fr'语言环境运行自己的东西:

我必须使用以下命令完成java命令行:

 -Duser.country=fr -Duser.language=fr

在这里我找到了灵感:NLS_LANG setting for JDBC thin driver?(最受好评的答案)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...