繁体   English   中英

在Java中创建oracle类型

[英]creating oracle types in java

我想调用一个oracle函数,该函数采用一个oracle类型的参数类型和一个oralce类型的参数类型

代码:

Connection connection = (Connection) parameters.get(SwingBenchTask.JDBC_CONNECTION);
boolean success = true;
// getObjArray returns one object array with values
Object[] object2Values = getObjArray("input.txt");
oracle.sql.StructDescriptor structDesc = oracle.sql.StructDescriptor.createDescriptor(typeName, connection);
oracle.sql.STRUCT object1 = new oracle.sql.STRUCT(structDesc, connection, object2Values);
String query = "{call ? :=change_offer(?,?)}";
CallableStatement stmt = connection.prepareCall(query);
long executeStart = System.nanoTime();
try
{
    stmt.registerOutParameter(1, OracleTypes.NUMBER);
    stmt.setObject(2, object1, OracleTypes.STRUCT);
    stmt.registerOutParameter(3, OracleTypes.STRUCT, OutTypeName);
    stmt.execute();
    stmt.close();
} catch (Exception ex)
{
    success = false;
    System.err.println("Error :" + ex);
}

oralce.sql.STRUCT类的构造函数引发以下异常

java.sql.SQLException:ORA-01427:单行子查询返回多个行

我修复了错误。 我给类型名称加上模式名称。

oracle.sql.StructDescriptor structDesc = oracle.sql.StructDescriptor.createDescriptor(schema.typeName, connection);
oracle.sql.STRUCT object1 = new oracle.sql.STRUCT(structDesc, connection, object2Values);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM