从sqlplus客户端到AL32UTF8 oracle数据库的特殊字符

时间:2015-02-27 13:06:34

标签: oracle plsql oracle11g oracle10g sqlplus

我有一个带有一些特殊字符的SQL脚本,原始编码是WE8MSWIN1252,在一个脚本中我有这个字符'''。当我用这个char执行脚本时,我的Oracle数据库编码是AL32UTF8,如果客户端编码是AL32UTF8,我将在数据库中得到一个错误的char。

通过这个过程,我需要在每次需要编译这个脚本时调整环境变量。

我正在寻找一种更灵活的方法,我希望将环境变量和数据库设置为AL32UTF8,然后将文件从ANSI调整/转换为UTF8。但我无法在数据库中执行具有正确char的脚本。

您知道我该怎么做,或者配置一些灵活的东西来执行不同特殊字符的脚本而不改变环境变量?

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以在命令行中执行此操作,也可以将其作为单个BAT文件执行此操作。

会是这样的:

C:\>chcp 1252
Active Codepage: 1252.

C:\>set NLS_LANG=.WE8MSWIN1252

C:\>sqlplus user/pwd@db @<your_sql_script_in_ANSI_encoding.sql>

C:\>exit
仅当命令行窗口打开时,

NLS_LANG才是WE8MSWIN1252。