在 SQL*Plus 中将字符集设置为 UTF-8
Set charset to UTF-8 in SQL*Plus
我有一个 SQL 脚本,其中包含以下语句:
insert into employee(fname,lname) values('Jörg','Müller');
我的数据库字符集设置为 AL32UTF8,但是当我在 SQL 中执行脚本时,加上德语字母 Ö 和 Ü 没有正确保存。如何将 SQLPlus 的字符集设置为 UTF-8?
是否可以在我的脚本文件中将 SQL*Plus 字符集设置为 UTF-8(sql 脚本文件包含将字符集设置为 UTF-8 的命令)?
我的 运行 时间环境是 Window 但脚本也应该能够 运行 在 unix 上。我的oracle版本是19c.
您通常会使用环境变量 NLS_LANG,例如在 windows 中这样设置它:SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
SQL*Plus 继承了 cmd
window 的字符集。您需要将编码设置为 UTF-8 并告诉它 Oracle。这是通过 NLS_LANG
参数完成的。
试试这个:
chcp 65001
set NLS_LANG=.AL32UTF8
sqlplus ....
当然,这只有在您的 sql-file 也保存为 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 的命令)?
我的 运行 时间环境是 Window 但脚本也应该能够 运行 在 unix 上。我的oracle版本是19c.
您通常会使用环境变量 NLS_LANG,例如在 windows 中这样设置它:SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
SQL*Plus 继承了 cmd
window 的字符集。您需要将编码设置为 UTF-8 并告诉它 Oracle。这是通过 NLS_LANG
参数完成的。
试试这个:
chcp 65001
set NLS_LANG=.AL32UTF8
sqlplus ....
当然,这只有在您的 sql-file 也保存为 UTF-8 时才有效。否则你需要从上面调整字符集。
见