0
我有一个需求,那就是oracle过程向我发送一个oracle集合。这个集合包含clob数据类型。
我如何得到这个clob数据?如何从oracle集合中检索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数据..
请建议..
@polpan在线程“main”中尝试了您的suggestion.Exception异常时出现以下错误:java.sql.SQLException:ORA-06550:第1行第7列: PLS-00306:错误的调用参数数量或类型到'GL_TEST1_CLOB_C2' ORA-06550:第1行,第7列: PL/SQL:语句被忽略 – user2500313 2014-10-29 08:52:07
@ user2500313通过编辑您的问题来添加'stg_core.gl_test1_clob_c2'函数的签名。 – user75ponic 2014-10-29 09:21:22