2014-06-16 31 views
1

如何将Clob数据转换为Binarystream?CLOB到二进制流转换

我现在能够在2个步骤中找到它,1 - > CLOB到String 2 ---> String到BinaryStream。

我打电话,其具有1个I/P和2 O/P和分配的CLOB输出到一些变量XYZ一个SQL包,样品如下所示...

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

是的,在Clob上没有getBinaryStream方法,因为它没有任何意义。一个clob是字符数据,而不是二进制数据。要求一个二进制流的clob比它向blob提供一个字符流没什么意义。

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