从数据库接收值变成oracle.sql.CLOB@xxxxx类型的处理方法。oracle数据库从10g以后,使用wm_concat函数接收到的值会变成oracle.sql.CLOB@xxxxx类型,下面是处理结果:
//oracle代码
select wmsys.wm_concat(列名称) name from 表A where 表A.ID=表B.ID
//java代码
Clob clob = (Clob)a.get(“NAME”);
Reader is = clob.getCharacterStream();
char[] c = new char[(int)clob.length()];
is.read(c);
data = new String(c);
//oracle代码
select wmsys.wm_concat(列名称) name from 表A where 表A.ID=表B.ID
//java代码
Clob clob = (Clob)a.get(“NAME”);
Reader is = clob.getCharacterStream();
char[] c = new char[(int)clob.length()];
is.read(c);
data = new String(c);
is.close();
//整理:由于使用wm_concat函数,oracle从10G以后就会变成clob类型。因此接收值的时候,用clob接收,并用流进行读写,这样接收到的值就OK了。