如何在Oracle中配置UTF8字符集?

PPS*_*ein 4 oracle

如何在Oracle中配置UTF8字符集?我试过更新如下:

UPDATE NLS_DATABASE_PARAMETERS SET VALUE = 'UTF8' WHERE PARAMETER='NLS_CHARACTERSET';
Run Code Online (Sandbox Code Playgroud)

但错误表明是这样的

ERROR at line 1:
ORA-01031: insufficient privileges
Run Code Online (Sandbox Code Playgroud)

Mar*_*bak 11

是的,那件事也失败了......那不是个好主意...... :-)

首先,对于Oracle中的UTF-8支持,您将需要使用"AL32UTF8"字符集.

这是一个全新的数据库吗?或者已有数据的现有数据库?

如果我们正在讨论新数据库,您应该删除数据库,然后再创建它,在创建数据库时在DBCA中指定AL32UTF8字符集.

如果它是现有的数据库,其中已有数据,那就有点复杂了.它目前使用什么字符集?AL32UTF8是该字符集的直接超集吗?

这真的是一个非平凡的主题.简而言之,您需要知道当前的字符集以及要移动到的字符集,并且您需要运行"CSSCAN"实用程序来检查兼容性和数据转换问题.

有关完整的故事,您应该查看MOS上的以下文档:

将NLS_CHARACTERSET更改为AL32UTF8/UTF8(Unicode)[ID 260192.1]

希望有所帮助.