![](/img/trans.png)
[英]How many session/connections the oracle 11G R2 Express Edition support?
[英]How to change character set in Oracle 11g r2 Express edition
我必须在Oracle 11g r2 Express实例中将字符集从AL32UTF8更改为WE8MSWIN1252 ...我尝试使用以下命令:
ALTER DATABASE CHARACTER SET WE8MSWIN1252;
但它没有说MSWIN1252不是AL32UTF8的超集。 然后我发现了一些关于CSSCAN的文章,这个工具似乎在Oracle 11 Express中不可用。
http://www.oracle-base.com/articles/10g/CharacterSetMigration.php
任何人都知道如何做到这一点? 提前致谢
编辑澄清一点:真正的问题是我正在尝试将数据导入到一个表中,该表的列定义为VARCHAR(6字节)。 导致问题的字符串是'eq.mês',它在MSWIN1252中需要6个字节,在UT8中需要7个字节
你不能。
11g的Express Edition仅使用UTF-8字符集。 如果你想回到10g的快递版,有一个使用Windows-1252字符集的西欧版本。 与其他版本不同,Oracle不支持Express Edition中的所有字符集,也不支持更改现有XE数据库的字符集。
为什么您认为需要更改数据库字符集? 除了可能需要更多存储空间来支持Windows-1252范围上半部分中的字符(通常没有特别大量使用)之外,UTF-8数据库没有太多缺点。
仅执行ALTER DATABASE命令的问题是数据字典未被转换且可能已损坏。
我有同样的问题。 在我的例子中,我们使用的是Oracle 11g Express Edition(11.2.0.2.0),我们确实需要它在WE8MSWIN1252字符集上运行,但我无法在安装时更改字符集(它始终与AL32UTF8一起安装)。
以管理员身份安装Oracle Client 11g并仅运行csscan full=y
(请查看此链接https://oracle-base.com/articles/10g/character-set-migration ),我们注意到有损和可转换的数据问题在我们的数据库中 但是,问题在于MDSYS(Oracle Spatial)和APEX_040000(Oracle Application Express)模式。 因此,由于我们不需要这些产品,我们将其删除(请查看此链接: http : //fast-dba.blogspot.com.br/2014/04/how-to-remove-unwanted-components-from.html )。
然后,我们使用expdp
导出用户模式并删除用户(必须在过程结束时重新创建它们)。
使用full=y capture=y
再次执行csscan,它报告: The data dictionary can be safely migrated using the CSALTER script
。 如果报告没有这个,那么csalter.plb脚本将不起作用,因为有些条件无法满足:
在我们的例子中,这个条件得到满足,我们可以成功运行CSALTER脚本。 此外,此脚本执行您尝试运行的ALTER DATABASE命令,并转换可转换的数据字典的CLOB数据。
最后,我们创建应用程序的用户和表空间,并成功导入用户数据的转储。
当你想要一个只支持原始字符子集的字符集时,我会说你最好的选择,你最好的选择是使用exp和imp back(或expdp和impdp)。
您确定没有单个表格会包含1252代码页中找不到的任何字符吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.