去掉drop语句后的cascade constraints
比如:drop table tbl1 cascade constraints;
改为:drop table tbl1;
去掉语句之间的分号
Sybase不允许Sql语句以分号结束。比如:
长整型由number(19)改为numeric(19,0);varchar2改为varchar
用到序列号的主键加上identity关键字,并且字段的数据类型只能是标度为0的numeric。当作为某表的外键时,字段类型要一致
比如:
短整型的主键:q_id numeric(5,0) identity not null,
整型的主键:w_id numeric(10,0) identity not null,
长整型的主键:e_id numeric(19,0) identity not null,
一定要表明字段是否为null
允许为空的字段一定要写null,否则默认该字段不为空。
比如:w_type VARCHAR(40) default -1 null,
INSERT语句所有表名和字段名都按建表时的名称写,区分大小写。不要给标志为identity 的主键赋值,sybase会自动从1开始按顺序增1
修改hbm
Hbm文件里有个schema="public",改成schema="用户名"
修改java中的sql语句
1) top10的语句
在oracle中可以使用:
select * from (select * from tble order by tt_id desc) where rownum<=10
得到tble 表中id最大的10条记录
在sybase中改成:
set rowcount 10 select * from tble order by model_id desc
2) 四舍五入的函数
Trunc由round(返回指定数字舍入到给定的小数位数后所得的值)替代。参考下面的资料:
3)
还有:
1. 关于自增长id的问题,如果需要手动插入部分初始数据,那么应该在先将identiy_insert 设为on
set insert_identity tblname on
而且一个session中只能有一个表是设为on的,如果有多个表,还得off 掉当前,再打开其它的.
2. sybase的命令终结符是go,所以在一定数量的语句后最好加一个go
3. 用到SET ROWCOUNT(类似top 10)的注意了,这个命令马上生效并且影响当前会话,也就是同一个会话中SET ROWCOUNT会影响所有查询语句,解决方法:在该条语句后加SET ROWCOUNT 0移除这个限制
SET ROWCOUNT 10
select * from fnms_param_infor
SET ROWCOUNT 0
4. 调整字符集
(1) 调整服务器字符集
所有的Server要求nocase 的utf8,请按如下方式完成:
在config server当中选择language>default character/sort然后保存,重启服务.可能不会成功,不过重起机器就可以了.
(2 )调整客户端字符集
客户端的character改为cp936