2011-01-05 91 views
2

我们有一组脚本,用于Oracle作为SQL Server。 这些脚本是ANSI。将ansi脚本自动转换为unicode

现在我们还想支持Unicode数据库。但是这需要对我们的脚本进行一些修改。例如使用不同的数据类型并在字符串之前加上'N'。

有谁知道是否有工具将脚本转换为/从unicode?我找不到任何使用多个搜索引擎的东西。

+1

请注意,ANSI和Unicode都不是真正的字符编码。我假设你正在谈论从单字节字符集(如ISO-8859-1或Windows-1252)切换到多字节字符集(如UTF-8或UTF-16)。我提到这一点是因为我注意到有很多开发人员甚至不知道他们的应用使用了哪些字符集,这是一个基本概念。 – 2011-01-05 10:42:25

+0

感谢您的回复。我会谈论从单字节字符集切换到多字节字符集。 – Rhapsody 2011-01-05 10:47:27

回答

2

Oracle你有两种方法。如果您完全控制了数据库服务器,我建议您只更改默认字符集,即NLS_CHARACTERSET参数的值,并保留其余数据库内容不变。使用常规CHAR/VARCHAR2列可提供更广泛的功能集(如全文索引)。

如果不能完全控制服务器,或者您需要与旧的非多字节感知应用程序保持兼容,则必须检查NLS_NCHAR_CHARACTERSET参数的值并更改所有数据库内容以使用NCHAR/NVARCHAR2数据类型。

这里还有一个问题,突出的差异:

Difference between VARCHAR2(10 CHAR) and NVARCHAR2(10)

最后但并非最不重要的,在这里你有一些有用的查询:

SELECT * FROM NLS_DATABASE_PARAMETERS; 
SELECT * FROM NLS_INSTANCE_PARAMETERS; 
SELECT * FROM NLS_SESSION_PARAMETERS; 

注:我无法与迁移的帮助工具或SQL Server部件,对不起。

+0

再次感谢。我认为我需要改变我的问题。你的回答很明确,但我的问题不是,我认为:-)我对数据库和unicode也相对陌生。 – Rhapsody 2011-01-05 10:53:00

+0

@狂想曲我承认我只回答了你的问题的一小部分。我的意思是,Oracle版本可能不需要任何更改。 – 2011-01-05 10:55:49