gpt4 book ai didi

java - 如何从oracle集合中检索clob数据

转载 作者:行者123 更新时间:2023-12-01 12:21:38 25 4
gpt4 key购买 nike

我有一个要求,Oracle 程序向我发送 Oracle 集合。该集合包含 clob 数据类型。
我如何获取这个 clob 数据?

代码:

    public static void main(String[] args) throws SQLException {
DBLayer db=new DBLayer();
CallableStatement ftRPCaStmt = null;
ResultSet requestPropCursor = null;
CallableStatement callsmt=null;
String dataCol="stg_core.tab_inft_flexi_gl_rec_hd2";
Connection conn=db.getConnection();
ArrayDescriptor structDescriptor1 = ArrayDescriptor.createDescriptor (dataCol.toUpperCase(), conn);
ftRPCaStmt = conn.prepareCall("{ call stg_core.gl_test1_clob_c2(?,?,?) }");
ftRPCaStmt.registerOutParameter(1, Types.VARCHAR);
ftRPCaStmt.registerOutParameter(2, Types.VARCHAR);
ftRPCaStmt.registerOutParameter(3, Types.ARRAY,dataCol.toUpperCase());
ftRPCaStmt.execute();

Object[] data = (Object[]) ((Array) ftRPCaStmt.getObject(3)).getArray();

当我打印数据时,我得到的数据值为Ljava.lang.Object;@b2fd8f,但我需要clob数据..
请建议..

最佳答案

尝试为

callsmt.registerOutParameter(3, OracleTypes.CLOB);

然后

Clob  clob = proc_stmt.getClob(3);
Reader reader = clob .getCharacterStream();
char[] buffer = new char[1];
while(reader.read(buffer) > 0) {
log.info(buffer);
}
// log.info(retValue);
....

以上代码片段未编译,这是为了提供指导。

关于java - 如何从oracle集合中检索clob数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26624000/

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