在JDBC中导出NLS_LANG

时间:2018-01-10 16:54:15

标签: java oracle unix jdbc

我们的Oracle数据库有俄文字符, 我们使用shell脚本来下载带有俄语字符数据的文件,下载的文件编码是在Windows-2151中,为此我们使用了

导出NLS_LANG = RUSSIAN_CIS.CL8MSWIN1251

我们现在正在shell脚本中使用Java数据库连接( JDBC )Oracle调用接口(OCI)驱动程序下载文件,此处NLS_LANG未导出,因此文件为UTF-8格式。

我们如何在JDBC中导出NLS_LANG设置

2 个答案:

答案 0 :(得分:0)

您应该打开一个Statement并执行:

ALTER SESSION SET NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251

...刚刚获得JDBC连接后。

另一种方法是在启动JVM时设置正确的系统区域设置:

java -Duser.country=... -Duser.language=... -Dfile.encoding=...

答案 1 :(得分:0)

final Charset RU_ASCII = Charset.forName("GREEK_GREECE.AL32UTF8");

try (FileInputStream input = new FileInputStream(new File("yourfileName.txt"))) {
InputStreamReader a = new InputStreamReader(input, RU_ASCII);

您可以使用Charset阅读俄语文件。 GREEK_GREECE.AL32UTF8NLS_LANG的字符集然后重新导出