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

标签 oracle utf-8 sqlplus

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

插入员工(fname,lname)值('Jörg','Müller');

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

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

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

最佳答案

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

试试这个:

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

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

参见OdbcConnection returning Chinese Characters as "?"

关于oracle - 在 SQL*Plus 中将字符集设置为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72205389/

相关文章:

MySQL 与所有 utf8 db/tables/columns 的归类非法混合

android - Android 4.1.2 上奇怪的 JSON 编码问题

php - php中utf-8编码的问题

Oracle:如何检测客户端进程终止,就像它适用于 sqlplus?

SQLPlus 命令行脚本在插入记录时挂起

keyboard - 方向键在 sqlplus 中不起作用

python - 无法正确读取Python中的SQL表: varchar columns imported as comma-separated characters/tuples

Oracle - 审计跟踪

regex - PL/SQL 优化在 varchar 中搜索日期

oracle - 错误 403--禁止 - 使用 SOAP UI 时出现 Web 服务错误