使用JDBC改变Oracle的session參数 NLS_DATE_FORMAT
近期项目除了一个问题,场景大概是这种,项目在国外开发。在项目开发过程中使用了大量的Oracle函数TO_DATE,可是开发者没有写第二个參数。
所以项目在国外的server上能够正常执行。但是在国内的server上就不能正常执行了。
通过调查是由于,TO_DATE函数的第一个參数为YYYYMMDD,第二个參数为空时,默认使用session中NLS_DATE_FORMAT參数。
数据库server採用的是英文版,所以默认NLS_DATE_FORMAT是RR-MM-DD,而在国外连接到Oracle数据库server时,会使用client的參数
覆盖server端的參数。
(这个是依据Oracle官方文档得出的)
This initial value is overridden by a client-side value if the client uses the Oracle JDBC driver or if the client is OCI-based and the NLS_LANG client setting (environment variable) is defined. The initialization parameter value is, therefore, usually ignored.
可是官方文档上没有讲怎么做。所以查资料。在注冊表中的Software》》Oracle下以key開始的key下加入了String Value。 NLS_DATE_FORMAT=YYYYMMDD。
通过实验证实,这个改动对于SQLPLUS是有效的,但是对于SQLDeveloper是无效的。眼下还没有找到对SQLDeveloper有效的方法。
其次,对于JDBC也没有找到设置參数的方式,假设大家有好的方法能够给我留言。
只是退而求其次。我找到了一个能够解决问题的方法,那就是创建触发器。
我创建的触发器例如以下:
CREATE OR REPLACE TRIGGER LOGINTRG
AFTER LOGON ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''RR/MM/DD''';
END LOGINTRG;
注意要是日期格式不正确,SQL不会运行。
使用JDBC改变Oracle的session參数 NLS_DATE_FORMAT的更多相关文章
- [Python] partial改变方法默认參数
Python 标准库中 functools库中有非常多对方法非常有有操作的封装,partial Objects就是当中之中的一个,他是对方法參数默认值的改动. 以下就看下简单的应用測试. #!/usr ...
- Oracle 表的创建 及相关參数
1. 创建表完整语法 CREATE TABLE [schema.]table (column datatype [, column datatype] - ) [TABLESPACE tablespa ...
- Oracle 集群心跳及其參数misscount/disktimeout/reboottime
在Oracle RAC中,能够从多个层次,多个不同的机制来检測RAC的健康状况,即能够通过心跳机制以及一定的投票算法来隔离故障.假设检測到某节点失败,则存在故障的节点将会被逐出集群以避免故障节点破坏数 ...
- oracle动态注冊參数local_listener
local_listener參数有两种书写格式,提供了不同的功能. 监听文件上,1521和1526port上都有动态监听port. [oracle@dbsv admin]$ cat listener. ...
- ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据
背景: 同事误删除线上数据.所以须要从备份中找回数据恢复. 真实屋漏偏逢连夜雨.船迟又遇打头风.前两天备份的磁盘坏块,如今仅仅有rman全备的.bak文件,没有控制文件和參数文件,所 ...
- 获取Oracle隐含參数信息
Oracle数据库的初始化參数.主要来源于两个Oracle内部数据字典表:X$KSPPCV和X$KSPPI通常我们查询的V$Parameter视图或使用show parameter命令都是就来源于这两 ...
- oracle官方文档_查看初始化參数(举例)
原创作品,出自 "深蓝的blog" 博客.深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46864217 记录 ...
- ORACLE 參数文件介绍
ORACLE数据库启动以后.通过select * from v$parameter这个语句能够查看到oracle数据库使用的全部參数. 对于oracle的參数文件,分为spfile 二进制文件和pfi ...
- 关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题
关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题 来自于: Installing, Ex ...
随机推荐
- C语言代码复习笔记:第二章
输出星星 #include <stdio.h> void printStart( int num ) { ) { printf("*"); }; } int main( ...
- centos下安装配置mongodb
1:安装mkdir -p /app/mongodb tar zxvf mongodb-linux-x86_64-rhel62-3.4.6.tgz vi .bash_profile PATH=$PATH ...
- 安装 LUA
为了以后方便,记录一下步骤 1.yum install readline-devel 2.wget http://www.lua.org/ftp/lua-5.1.4.tar.gz 3.cd lua-5 ...
- EL和OGNL表达式的区分
OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以单独使用 ${ses ...
- Python两个变量的值进行交换的方法
Python两个变量的值进行交换的方法 使用第三方变量: '''这是第一种赋值方法,采用第三方变量''' c = a a = b b = c 使用两个变量: '''使用两个变量''' a = a+b ...
- 规避javascript多人开发函数重名问题
命名空间 封闭空间 js模块化mvc(数据层.表现层.控制层) seajs 变量转换成对象的属性 对象化
- SpringMVC学习笔记六:使用 hibernate-validator注解式数据校验
对客户端传过来的参数,在使用前一般需要进行校验. SpringMVC框架内置了Validator验证接口,但是实现起来太麻烦.我们一般使用 hibernate-validator进行数据校验. 1:j ...
- 20160210.CCPP体系具体解释(0020天)
程序片段(01):01.二级指针.c 内容概要:二级指针 #include <stdio.h> #include <stdlib.h> //01.二级指针: // 1.使用场景 ...
- 【DB2】慎用nickname,可能会引起效率较低
在使用db2的时候,在A库建立了nickname,指向B库的物理表(数据量800多万),现在使用程序(JDBC)连接数据库,并计算指标,但是发现效率很低. 解决办法: 删除A库中的nickname,在 ...
- ArcGIS调整影像颜色输出
有碰到一些质量很差的遥感影像,颜色需要进行调整(主要是针对看)输出,这里记录一下ArcGIS中的调整输出方式. 1.首先把影像文件拖入ArcMap中,然后右键单击图层列表中的图像,选择属性. 2.选择 ...