Applies to:
JDBC - Version: 10.2 to 11.1.0
Information in this document applies to any platform.
Goal
When using 10gR2 or 11g Thin JDBC driver, the session NLS_SORT parameter is not set with the expected value (for instance 'CROATIAN' instead of 'BINARY').
How to make sure that your session uses the expected session NLS_SORT parameter value?
Solution
Here are three options to set the NLS_SORT session parameter with the 10gR2 Oracle JDBC Thin driver.
- Using java locale setting
The value of the used NLS_SORT parameter depends on the locale that has been set when running the java program. Therefore by setting the language and the region on startup of the java process the NLS_SORT parameter can be influenced. To do so start the java program as following:
java -Duser.lang=en -Duser.region=US <jdbc_program>
- Set NLS_SORT within your Java application
Add code to your java program that alters the database session when retrieving a connection to connect to the database. The code would look like:
...
String s_alter = "alter session set NLS_SORT=BINARY";
Statement stmt = null;
stmt = p_connection.createStatement();
stmt.execute( s_alter );
...
- Set the value via a trigger when connecting to the database server
To make sure that this parameter NLS_SORT is set for every connection done to the database, you can also use a database trigger that sets the value after the users connect. Note that this 'trigger option' will work when accessing database server with the JDBC Thin driver (not with the OCI JDBC driver, you can refer to the enhancement request Bug 3967004). Here is sample of a Logon trigger (change <user> with the name of the actual user for which the parameter should be set):
CREATE OR REPLACE TRIGGER <user>.TRG_ONLOGON_CHANGE_NLS_SORT
AFTER LOGON ON <user>.SCHEMA
BEGIN
execute immediate 'ALTER SESSION SET NLS_SORT = BINARY';
END;
/
分享到:
相关推荐
在Oracle 10g和11g版本中,数据库系统提供了丰富的功能和优化,包括对Java应用程序的支持,使得开发者可以通过JDBC(Java Database Connectivity)接口与Oracle数据库进行交互。在给定的压缩包文件中,我们关注的是...
快速通过NLS_LANG切换字符集快捷工具设置客户端字符集,避免连接多个不同字符集的数据库导致PL/SQL工具显示乱码的问题。
nls_charset12.jar 之前在csdn上下载的这个文件有问题,导致程序调试了很久 我这边上传这个没有问题
总的来说,解决Oracle 11g存储过程传入数组空值的问题需要深入理解Oracle的PL/SQL编程、NLS字符集概念以及异常处理策略。通过熟练掌握这些知识,我们可以编写出能够有效处理各种输入的高效且健壮的存储过程。
Oracle的NLS_DATE_FORMAT设置(日期格式设置)_ITPUB博客.mhtml
Oracle 10G JDBC连接是Java开发者在与Oracle数据库交互时常用的一种技术。JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的...
ojdbc14是Oracle JDBC驱动的第4版,主要针对Oracle 10g数据库系统设计。这个驱动使得Java应用程序能够连接到Oracle数据库,执行SQL语句,处理结果集等数据库操作。ojdbc14相比于早期版本可能包含了一些性能优化和新...
### Oracle客户端 NLS_LANG 的设置方法 #### 一、NLS_LANG 参数的组成与意义 在Oracle客户端中,`NLS_LANG`是一个重要的环境变量,它用于定义客户端的语言环境设置,包括语言、地域以及字符集等。这对于确保客户端...
标题 "nls_cp1251.rar_NLS_translation" 暗示了这是一个与字符集编码转换相关的资源,特别是关于CP1251编码。CP1251是Windows操作系统中用于东欧语言,尤其是俄语、保加利亚语、白俄罗斯语、乌克兰语等的一种字符...
oracle关于字符集的jdbc驱动,orai18n.jar nls_charset12.jar 支持集合的驱动程序 将java的集合转换为数据库集合类型 oracle10g及以下版本使用 nls_charset12.jar,以上的版本使用orai18n.jar
标题中的“PB连ORACLE10免客户端”指的是使用PowerBuilder(PB)12.5连接Oracle 10g数据库时,不需安装完整的Oracle客户端软件,而是采用一种轻量级或者精简的方式进行连接。这种方法可以减少系统资源的占用,简化...
标题 "nls_cp852.rar_NLS_translation" 指涉的是一个关于字符集转换的资源,特别是CP852编码的翻译表。NLS(National Language Support)是计算机科学中的一个术语,用于描述软件系统如何支持多种语言和区域设置。在...
标题中的"NLS_equation_Agrawal.rar"指的是非线性薛定谔方程(Nonlinear Schrödinger Equation, NLS),这是光纤通信、量子光学以及许多其他领域中研究脉冲传播的一个基本数学模型。Agrawal的名字通常与光学领域的...
"oracle class12.jar nls_charset12.jar存储过程接收数组空值"这个标题所描述的,就是关于在Oracle 11g中解决这个问题的具体实践。 首先,`class12.jar`和`nls_charset12.jar`是Oracle数据库的Java存根库,它们包含...
| PARAMETER | VALUE | |--------------------|-------------------| | NLS_LANGUAGE | AMERICAN | | NLS_NCHAR_CHARACTERSET | UTF8 | | NLS_TERRITORY | AMERICA | | NLS_CURRENCY | $ | | NLS_ISO_CURRENCY | ...
4. **优化算法**:为了找到最小二乘问题的最优解,可以使用fminsearch或fminunc等优化算法(STAR_NLS_fminsearch.m、STAR_NLS_fminunc_fixPhi.m、STAR_NLS_fminunc.m)。这些算法迭代调整参数,以减小残差平方和。 5...
标题 "nls_cp950.rar_CP950_translation" 暗示了这是一个与字符集编码相关的资源,特别是CP950编码在嵌入式Linux环境中的转换表。描述进一步证实了这一点,提到了"Charset cp950 translation tables for Embedded ...