一、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_csname2>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