1.如果查询语句结果为空,比如说没有deadlock,Oracle会消化掉这个异常,告诉你的程序没有结果,返回空
而Sybase会抛出一个异常,说明结果集为空,程序中止.所以Sybase需要特别处理.我的做法是在查询块抛出异常但不处理,由调用方进行处理.
2.Oracle提供大量v$视图,供监控查询
Sybase可以使用T-Sql语句,可以使用Sp,也可以使用mda表。从开放性和监控信息的综合性来说,Oracle做得更好。
Sybase通常建议使用方法1和3,因为2比较消耗系统资源,3需要事先额外配置Sybase系统(方法见博文),并且会增加一些K级内存消耗,但可以容忍。
3.使用属性封装的方法,会很方便地进行监控信息的存取。
4.Sybase某些Sp使用cursor,使得返回结果是一个多行多列的小型表(列字段分两行甚至多行),这样对于列值的获取非常不方便,因为用rs.getstring("列字段名")只有第一行的列能拿到,后面的列都不认识。如果使用属性封装的方法,我没想到什么获取的方式。我的解决方法是绕着走,不用这个sp了,自己写语句。。。