首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新/插入/检索数据库中的重音字符?

更新/插入/检索数据库中的重音字符?
EN

Stack Overflow用户
提问于 2016-11-22 12:23:30
回答 1查看 3.1K关注 0票数 5

我用的是甲骨文12G

当我从sql plus运行@F:\update.sql时,当我从sqlplus或sql developer检索时,它将重音字符é显示为垃圾字符。

从sql +运行单个语句时。现在,如果我从sqlplus检索它,它将显示正确的字符,但是当我从sqldeveloper检索它时,它再次显示垃圾字符。

update.sql内容如下

代码语言:javascript
复制
update employee set name ='é' where id= 1;

我想要的是当我运行@F:\update.sql时,它应该以正确的格式插入/更新/检索它,不管它是来自sqlplus还是其他任何工具?

信息:-当我跑的时候

代码语言:javascript
复制
   SELECT * FROM NLS_DATABASE_PARAMETERS  WHERE PARAMETER LIKE '%CHARACTERSET%' 

我得到下面的信息

代码语言:javascript
复制
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET               WE8MSWIN1252
NLS_NCHAR_CHARACTERSET         AL16UTF16

当我从命令提示符运行@.[%NLS_LANG%]时,我看到

代码语言:javascript
复制
SP2-0310: unable to open file ".[AMERICAN_AMERICA.WE8MSWIN1252]"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-22 13:00:22

我不熟悉,但我可以给出SQL*Plus的解决方案。

假设您喜欢在Windows CP1252中工作

首先,确保将文件F:\update.sql保存为CP1252编码。许多编辑器称这种编码为ANSI,这是相同的(让我们跳过术语ANSIWindows-1252之间区别的细节)

然后在运行脚本之前输入

chcp 1252

以便将cmd.exe的编码切换到CP1252。默认情况下,cmd.exe的编码很可能是CP850CP437,它们是不同的。

然后将NLS_LANG环境变量设置为字符集WE8MSWIN1252

set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252

在此之后,您的脚本应该可以很好地使用SQL*Plus。SQL*Plus从父cmd.exe继承编码(或者“字符集”,如果您喜欢这个词)。NLS_LANG告诉Oracle驱动程序您使用的是哪个字符集。

示例摘要:

代码语言:javascript
复制
chcp 1252
set NLS_LANG=.WE8MSWIN1252
sqlplus username/password@db @F:\update.sql

注意:为了永久设置cmd.exe的编码,请参见以下答案:Windows命令行中的Unicode字符-如何?

NLS_LANG可以设置为环境变量,也可以在HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG (针对32位Oracle )的注册表中设置,resp。HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG (用于64位Oracle客户端)。

对于检查选项,应该可以在某个地方定义SQL文件的编码。

您不会被迫使用Windows1252。其他编码也是如此,例如WE8ISO8859P1 (即ISO8859-1,chcp 28591)或UTF-8.但是,在UTF-8的情况下,script可能包含数据库字符集WE8MSWIN1252不支持的字符。这样的字符将被占位符(例如¿)所取代。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40741787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档