So holen Sie verschachtelte Datenstrukturen in Datenbanken mit JDBC abJava

Java-Forum
Anonymous
 So holen Sie verschachtelte Datenstrukturen in Datenbanken mit JDBC ab

Post by Anonymous »

Bei der Verwendung verschachtelter Datenstrukturen in Datenbanks (z. B. Array oder Zeilen ) unter Verwendung von JDBC scheint es, dass die Ergebnisse als JSON -String -Werte abgerufen werden können, z. B.:

Code: Select all

try (Statement s = connection.createStatement();
ResultSet rs = s.executeQuery(
"""
select array(1, 2), array('a', 'b'), array(true, false)
"""
)) {
while (rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getObject(1).getClass());
System.out.println(rs.getString(2));
System.out.println(rs.getObject(2).getClass());
System.out.println(rs.getString(3));
System.out.println(rs.getObject(3).getClass());
}
}
< /code>
Erzeugt gültige JSON -Zeichenfolgen: < /p>
[1,2]
class java.lang.String
["a","b"]
class java.lang.String
[true,false]
class java.lang.String
resultSet :: getArray wird nicht implementiert:

Code: Select all

java.sql.SQLDataException: [Databricks][JDBC](10400) Invalid type for data - column: 3, type: Array.
at com.databricks.client.exceptions.ExceptionConverter.toSQLException(Unknown Source)
at com.databricks.client.jdbc.common.SForwardResultSet.getArray(Unknown Source)
at org.jooq.testscripts.JDBC.main(JDBC.java:44)
Dies scheint in Ordnung zu sein, bis das Array " Zeichen enthält, z. />

Code: Select all

["""]
< /code>
statt: < /p>
["\""]
Ebenso beim Lesen von Select Array (Datum '2000-01-01') erhalte ich:
[2000-01-01]
< /code>
statt z.["2000-01-01"]
< /code>
Ist dies eine bekannte Fehler /Einschränkung in der Version 2.7.1 JDBC -Treiberversion, die ich verwende? Gibt es eine bekannte Problemumgehung?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post