создание типов оракула в Java - PullRequest
0 голосов
/ 20 октября 2011

Я хочу вызвать функцию оракула, которая принимает один в тип параметра типы оракула и один тип выходного параметра типы устного сообщения .

код:

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: single-подзапрос строки возвращает более одной строки

1 Ответ

1 голос
/ 21 октября 2011

Я исправил ошибку. Я даю имя типа с именем схемы.

oracle.sql.StructDescriptor structDesc = oracle.sql.StructDescriptor.createDescriptor(schema.typeName, connection);
oracle.sql.STRUCT object1 = new oracle.sql.STRUCT(structDesc, connection, object2Values);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...