DatabaseMetaData.getColumns таблицы, имеющей исключение, в то время как resultSet.next (), то есть ORA-01427: однострочный подзапрос возвращает более одной строки - PullRequest
0 голосов
/ 02 апреля 2019

При получении метаданных таблицы, в которой есть столбцы типа объекта.при вызове DatabaseMetaData.getColumns и итерации по набору результатов с использованием следующего метода возникает исключение

ORA-01427: однострочный подзапрос возвращает более одной строки

private void searchForColumnNameInTables(DatabaseMetaData dmd) throws SQLException {
    Iterator iter = listOfTables.iterator();

    while (iter.hasNext()) {
        String tableName = (String) iter.next();
        java.sql.ResultSet rs1 = dmd.getColumns(catalog, schema, tableName, "%"); //
        //java.sql.ResultSet rs1 = dmd.getUDTs(tableName, schema, "%", null);
        while (rs1.next()) {
            String colName = rs1.getString(4);
            String colType = rs1.getString(5);
            System.out.println("Table " + tableName + " ColumnName" + colName + " ColumnType" + colType);
            if (colName.trim().toLowerCase().equals(colNameToSearchFor)) { //
                System.out.println("found '" + colNameToSearchFor + "' in " + tableName);
            }
        }
    }

}

1 Ответ

0 голосов
/ 02 апреля 2019

Это ошибка в драйвере JDBC 12.1.0.2 . Обновите систему до 12.2.0.1 или обратитесь в службу поддержки Oracle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...