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



我有一个SQL脚本,包含以下语句:

insert into employee(fname,lname) values('Jörg','Müller');

我的数据库字符集列表设置为AL32UTF8,但当我在SQL中执行脚本时,加上德语字母Ö和Ü没有正确保存。如何将SQLPlus的字符集设置为UTF-8?

是否可以在我的脚本文件中设置SQL*Plus字符集为UTF-8 (SQL脚本文件包含将字符集设置为UTF-8的命令)?

我的运行环境是windows,但脚本也应该能够在unix上运行。我的oracle版本是19c。

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

试试这个:

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

当然,这只在sql文件也保存为UTF-8时才有效。否则,您需要从上面调整字符集。

参见OdbcConnection返回中文字符为"?">

您通常会使用环境变量NLS_LANG,例如在windows中这样设置:set NLS_LANG=AMERICAN_AMERICA。AL32UTF8

相关内容

最新更新