2024年4月26日发(作者:)

Sybase报Invalidpackettype0x22错误解决-电脑资料

Sybase报Invalid packet type 0x22错误解决

今天使用Sybase(15.7 Developer版)查询DB时,遇到了很诡

异的错误,错误异常如下:

[java]

<-- eption: TDS Protocol error: Invalid

packet type 0x22

at

ken(:2284)

at

InResultSet(

:792)

at

sultSet.(:146)

at

eSQLQuery(JtdsSt

:424)

at

eQuery

(:693)

at

rrentData(

:1321)

at

(:1437)

at

tatResults(St

atResultObtainMgr.

java:194)

at

tAllExpertLev

els

(:51)

at

Method)

at

(NativeMethodAcc

:39)

at

(DelegatingM

ethodAccessorImpl

.java:25)

at (:597)

at t(:154)

at e(:127)

at sult$t(:106)

at

tected(:124)

at (:109)

at (:118)

at

n(JUnit3TestReference

.java:130)

at

(TestExecuti

:38)

at

ts

0(Native

(:467)

at

ts

(:683)

at

(:390)

at

(:197)

Caused

at

ken(:2271)

... 24 more

经过定位,最终发现是指定的表中的字段个数太多(我这个表中

有575个字段),把sql语句

修改成select 字段1,字段2 …… from 表

问题不再重现,,

电脑资料

《Sybase报Invalid packet type 0x22错误解决》

(www.)。

select * 时,底层虽然也会提取所有字段,但是会报这个错误,如

果我们把所有字段列

在select后面,则不会报错,可以正确提取出字段。sql语句变为:

select Field1,Field2,

Feild3…… from TableName.

后来又测试了下,发现对如果是对decimal字段类型进行排序时,

也会报这个错。

by: olException:

Invalid packet type 0x22