一、Sybase 与 oralce 数据类型的映射关系
|
Sybase 字段类型 |
Oracle字段类型 |
备注 |
数字类型 |
INT |
NUMBER |
|
SMALLINT |
NUMBER |
|
TINYINT |
NUMBER |
|
MONEY |
NUMBER(m,n) |
|
SMALLMONEY |
NUMBER(m,n) |
|
FLOAT(n) |
NUMBER (n) |
|
Decimal |
number |
|
Numeric(m,n) |
Number(m,n) |
日期类型 |
Datetime |
Date |
|
SmallDatetime |
date |
字符类型 |
Char |
Char |
|
varchar |
Varchar2 |
其它类型 |
TEXT |
clob |
|
IMAGE |
Blob |
|
Bit |
Number(1) |
建议:
Sybase中对应的除数值型数据外,在Oracle中全部转换为字符型
二、Sybase总是出现中文乱码(
解决办法)
2.1、在isql状态下查看原来数据库字符集使用情况,服务器和客户端的都要查看,方法是:
2.1.1获得服务器端的字符集情况:
1>sp_helpsort
2>go
输出结果应为:
Character Set = 2,
cp850
Code Page 850 (Multilingual) character set.
Sort Order = 50, bin_cp850
Binary Sort Order for Code Page 850 (cp850).
2.1.2 获得客户端字符集情况:
1>select @@client_csname
2>go
输出结果应为:
iso_1
说明:
很多时候应用程序报错,客户端和服务器端字符集不相匹配。
2.2、将数据库的缺省字符集设置为cp936
C:\sybase\charsets\cp936>charset -Usa -P[密码] -S[实例名称] binary.srt cp936--一定是sa不然下一步会报错
通过上述命令就成功将CP936字符集安装表Sybase的系统字符集表中,但必须重启Sybase服务两次才能看到结果,可以通过查看 master数据库中的syscharsets表查看是否已经安装成功,我们可以看到已经安装成功了:1002,171,0,1,'cp936', 'CP936 (Simplified Chinese).',’…’
你将看到下面的信息,表示这时你已经成功添加了cp936字符集到你的系统中。
Loading file 'binary.srt'.
Found a [sortorder] section.
This is Class-1 sort order.
Finished loading the Character Set Definition.
Finished loading file 'binary.srt'.
1 sort order loaded successfully
其实这样也行:开始--> sybase --> server Config --> Configure Adative Server -->
sa登陆后 --> Language --> Character下的 Set Default --> 选择ISO 8859-1