如何将Clob数据转换为Binarystream?

到目前为止,我可以分两步找到它,1-> CLOB到字符串2 --->字符串到BinaryStream。

我正在调用一个具有1 i / p和2 o / p的SQL包,并将CLOB输出分配给某个变量XYZ,示例如下所示...

Clob XYZ=null;
CallableStatement CalSmt = null;
InputStream ABC = null;
try
{
 CalSmt = conn.prepareCall("{call package(?,?,?)}");
 CalSmt.registerOutParameter(1,OracleTypes.CLOB);
 CalSmt.registerOutParameter(2,OracleTypes.INTEGER);
 CalSmt.setString(3,"315141");
 CalSmt.execute();
 XYZ = CalSmt.getClob(1);
 ABC= **XYZ.getBinaryStream();** <---- this is showing me a error as 'Method "getBinaryStream" not found'
}


XYZ在这里保存CLOB数据,需要将其转换为二进制流并保存到ABC中以供进一步参考。请通过提供此plz的单一方法来帮助我。提前致谢。

最佳答案

是的,getBinaryStream上没有Clob方法,因为存在一个没有意义。 Clob是字符数据,而不是二进制数据。向Clob请求二进制流比向Blob请求字符流没有任何意义。

老实说,如果您确实需要这种转换,那么您转换为字符串的方法对我来说似乎很合理。最好还是避免这种情况-如果存储二进制数据,请在各处使用blob和InputStream。如果要存储字符数据,请在各处使用Clob和Reader

08-25 14:22
查看更多