oracle中utf8,如何在Oracle中配置UTF8字符集?(How to configure UTF8 character set in Oracle?)...

如何在Oracle中配置UTF8字符集?(How to configure UTF8 character set in Oracle?)

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

UPDATE NLS_DATABASE_PARAMETERS SET VALUE = 'UTF8' WHERE PARAMETER='NLS_CHARACTERSET';

但是错误就是这样的

ERROR at line 1:

ORA-01031: insufficient privileges

How to configure UTF8 character set in Oracle? I've tried to update as follow :

UPDATE NLS_DATABASE_PARAMETERS SET VALUE = 'UTF8' WHERE PARAMETER='NLS_CHARACTERSET';

But the error show like that

ERROR at line 1:

ORA-01031: insufficient privileges

原文:https://stackoverflow.com/questions/8239250

更新时间:2019-06-28 07:16

最满意答案

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

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

这是一个全新的数据库吗? 还是已经有数据的现有数据库?

如果我们正在谈论新的数据库,则应该删除数据库,然后再次创建它,并在创建数据库时指定DBCA中的AL32UTF8字符集。

如果它是现有的数据库,其中已有数据,则会更复杂一些。 它目前使用什么字符集? AL32UTF8是该字符集的直接超集吗?

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

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

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

希望有所帮助。

Yeah, good thing that failed too...that's not a good idea... :-)

First off, for UTF-8 support in Oracle, you'll want to use the 'AL32UTF8' character set.

Is this a brand new database? Or an existing database with data already in it?

If we're talking new database, you should just drop the database, and create it again, specifying the AL32UTF8 character set in DBCA, when you create the database.

If it's an existing database, with data already in it, it's a bit more complicated. What character set does it currently use? Is AL32UTF8 a direct superset of that character set?

This is really a non-trivial subject. In short, you need to know the current character set, and the character set you're moving to, and you'll need to run the 'CSSCAN' utility to check for compatibility and data conversion problems.

For the full story, you should check the following document on MOS:

Changing the NLS_CHARACTERSET to AL32UTF8 / UTF8 (Unicode) [ID 260192.1]

Hope that helps.

2011-11-23

相关问答

您可能需要处理以下事项: MySQL Connector / J 5.1.13中的更改(2010-06-24) Connector / J不支持服务器5.5.2及更新版本的utf8mb4。 Connector / J现在可以自动检测使用character_set_server = utf8mb4配置的服务器,或者在建立连接时调用SET NAMES =时调用使用characterEncoding = ...作为utf8mb4传递的Java编码utf-8。 (错误#54175) You may hav

...

如果你想制作一个范围,你可以使用\uffff 。 MyRange("foo", "foo\uffff")

将找到以foo开头的所有内容。 If you want to make a range, you can use \uffff. MyRange("foo", "foo\uffff")

Will find everything that starts with foo.

是的,那件事也失败了...这不是一个好主意... :-) 首先,对于Oracle中的UTF-8支持,您将需要使用“AL32UTF8”字符集。 这是一个全新的数据库吗? 还是已经有数据的现有数据库? 如果我们正在谈论新的数据库,则应该删除数据库,然后再次创建它,并在创建数据库时指定DBCA中的AL32UTF8字符集。 如果它是现有的数据库,其中已有数据,则会更复杂一些。 它目前使用什么字符集? AL32UTF8是该字符集的直接超集吗? 这真的是一个非平凡的主题。 总之,您需要知道当前的字符集以及要移

...

你在STDOUT上放置了UTF-8编码层,但是你不会把这个层放在HL7通道上(不管是什么),你也不会用UTF-8编码你的消息。 这就是为什么你看到Wide print ...警告。 将一个UTF-8编码的字符串写入HL7连接。 my $msg = getHl7Message();

# $msg is not encoded.

# map{chr}split//,$msg should produce some values larger than 255

print($msg);

# th

...

目前的形式,这个问题是不可能回答的。 我们猜测...... 您正在使用MySQL LOAD DATA语句。 您已经验证.csv文件的字符集编码不是 ucs2 。 您已经验证.csv文件的字符集编码是utf8 (即匹配character_set_database系统变量),您已在LOAD DATA语句的CHARACTER SET子句中指定了相应的字符集。 除此之外,还有一大堆其他可能是错误的东西,但我们仍然只是在猜测。 当MySQL“悲惨地失败”时,经常出现某种迹象,如错误消息,或者我们可以观察和描

...

拥有顽皮角色的十六进制将有所帮助。 阅读所有文本,然后处理任何不良字符的可能方法: 读入VARBINARY或BLOB类型的列。 遍历行,尝试复制到VARCHAR或TEXT列。 另一个计划是使用utf8mb4而不是utf8。 可能是坏人物是一个表情符号或中文字符,可以在utf8mb4中工作,但不能用于utf8。 It would help to have the HEX of the naughty character. A possible approach to reading all the

...

虽然重新启动我的TOMCAT没有任何效果,但实际上我必须重启我的'mySql'以便进行更改。 因此,您必须首先停止主服务器(在我的情况下Stop TOMCAT ),然后重新启动mySql ,然后再次Start TOMCAT 。 之后,在你的mySql输入: show VARIABLES like %character%; 你应该看到你的数据库数据类型为utf-8 ,如果你输入: show VARIABLES like %collation%你还应该看到你的数据库整理数据类型应该是utf-8_gen

...

这是编码角色的一种方法。 参考站点,如FileFormat.info 确定您的十进制编码值。 在这种情况下,chr(50093),拉丁文小写字母I acute,其十进制编码值为237。 使用字符前置237并附加; 。 在Oracle中,你可以使用replace() replace('string with characters',chr(50093),'í' 在这种情况下,请将line3赋值语句替换为 line3 := replace(line3,chr(50093),'í

...

以root用户身份(或其他SUPER用户)连接时,将忽略init-connect 。 在my.cnf ( my.ini )文件中,在[mysql]或[client]下添加: default-character-set = utf8

(我不知道Heidi是否会覆盖它 - 了解它是如何“连接”的。) 附加物 character_set_database和_server不一定是个问题。 _client, connection和_results用于说明客户端中的字节是如何编码的。 您可以通过在CREAT

...

正如@Yu Zhang建议的那样,我读了这个链接的讨论,我发现我应该设置一个环境变量NLS_LANG ,以便与数据库建立UTF-8连接。 所以我在测试设置中添加了以下行: os.environ["NLS_LANG"] = "AMERICAN_AMERICA.AL32UTF8"

As @Yu Zhang suggested, I read discussion in this link and I found out that I should set an environment variabl

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值