Java CLOB到二进制流的转换

Java CLOB到二进制流的转换,java,sql,string,clob,Java,Sql,String,Clob,如何将Clob数据转换为Binarystream 我现在可以通过两个步骤找到它,1-->CLOB到字符串2-->字符串到二进制流 我正在调用一个具有1个I/p和2个o/p的SQL包,并将CLOB输出分配给某个变量XYZ,示例如下所示 Clob XYZ=null; CallableStatement CalSmt = null; InputStream ABC = null; try { CalSmt = conn.prepareCall("{call package(?,?,?)}"); C

如何将Clob数据转换为Binarystream

我现在可以通过两个步骤找到它,1-->CLOB到字符串2-->字符串到二进制流

我正在调用一个具有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'
}
Clob XYZ=null;
CallableStatement CalSmt=null;
InputStream ABC=null;
尝试
{
CalSmt=conn.prepareCall(“{callpackage(?,?)}”);
registerOutParameter(1,OracleTypes.CLOB);
registerOutParameter(2,OracleTypes.INTEGER);
计算整定管柱(3,“315141”);
CalSmt.execute();
XYZ=CalSmt.getClob(1);

ABC=**XYZ.getBinaryStream();**是的,没有启用
getBinaryStream
方法,因为这样做没有意义。clob是字符数据,而不是二进制数据。向clob请求二进制流比向blob请求字符流更没有意义

老实说,如果您真的需要这种转换,您转换为字符串的方法对我来说似乎是合理的。如果您可以避免这种转换,那就更好了-如果您存储二进制数据,请使用blob和
InputStream
无处不在。如果您存储字符数据,请使用clob和
阅读器