CLOB到二进制流转换

时间:2014-06-16 10:23:13

标签: java sql string clob

如何将Clob数据转换为Binarystream?

我现在可以在2个步骤中找到它,1 - > CLOB到String 2 --->字符串到BinaryStream。

我正在调用一个SQL包,它有1个i / p和2个o / p,并将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提供单一方法来帮助我。在此先感谢。

1 个答案:

答案 0 :(得分:2)

是的,Clob上没有getBinaryStream方法,因为它没有意义。 clob是字符数据,而不是二进制数据。要求clob获取二进制流而不是向blob请求字符流没有意义。

转换为字符串的方法对我来说似乎是合理的,说实话,如果你真的需要这种转换。如果您可以避免它,那会更好 - 如果您要存储二进制数据,请在任何地方使用blob和InputStream。如果您要存储字符数据,请在任何地方使用clob和Reader