oracle 在SQL*Plus中将字符集设置为UTF-8

k5ifujac  于 2023-03-17  发布在  Oracle
关注(0)|答案(2)|浏览(524)

我有一个SQL脚本,其中包含以下语句:
insert into employee(fname,lname) values('Jörg','Müller');
我的数据库字符集设置为AL 32 UTF8,但是当我在SQLPlus中执行脚本时,德语字母Ö和Ü没有正确保存。我如何将SQLPlus的字符集设置为UTF-8?
是否可以在脚本文件中将SQL*Plus字符集设置为UTF-8(SQL脚本文件包含将字符集设置为UTF-8的命令)?
我的运行环境是窗口,但脚本也应该能够在unix上运行。我的oracle版本是19 c。

eiee3dmh

eiee3dmh1#

SQL*Plus从cmd窗口继承字符集。您需要将编码设置为UTF-8并将其告知Oracle。这是通过NLS_LANG参数完成的。
试试这个:

chcp 65001
set NLS_LANG=.AL32UTF8
sqlplus ....

当然,只有当你的sql文件也保存为UTF-8格式时,这才能起作用。否则,你需要从上面修改字符集。
请参见OdbcConnection返回中文字符“?”

jpfvwuh4

jpfvwuh42#

您通常会使用环境变量NLS_LANG,例如在windows中这样设置它:集合NLS_LANG=美洲语言

相关问题