gpt4 book ai didi

java - CLOB 到二进制流的转换

转载 作者:行者123 更新时间:2023-11-30 03:51:47 26 4
gpt4 key购买 nike

如何将 Clob 数据转换为 Binarystream ?

到目前为止,我可以通过 2 个步骤找到它,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 中以供进一步引用。请为此提供单一方法来帮助我。提前致谢。

最佳答案

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

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

关于java - CLOB 到二进制流的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com