получить идентификатор строки из оракула, используя Java - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужно получить rowid из базы данных Oracle, используя Java.Я использовал приведенный ниже код.

Statement st = con.createStatement();
ResultSet rs=st.executeQuery("select * from ABC");
while(rs.next()) {
            RowId str=rs.getRowId(1);        
            System.out.println(str);
        }

В результате я получаю

oracle.sql.ROWID@2ce6c6ec
oracle.sql.ROWID@1bae316d

, но мне нужны шестнадцатеричные значения, такие как

AAAdItACwAABXcIAAA

Может кто-нибудь направить меняна это?

спасибо

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Вы можете использовать https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html#printHexBinary%28byte%5B%5D%29

Это непосредственно предоставит вам шестнадцатеричное значение

String hexValue = DatatypeConverter.printHexBinary(resultSet.getRowId(10).getBytes())

Вот полный код

Statement st = con.createStatement();
ResultSet rs=st.executeQuery("select * from ABC");
while(rs.next()) 
{
    String str= DatatypeConverter.printHexBinary(resultSet.getRowId(1).getBytes())       
    System.out.println(str);
}
0 голосов
/ 11 декабря 2018

Из документов Java

Получение объектов RowId Получите объект java.sql.RowId, вызвав методы получения, определенные в интерфейсах ResultSet и CallableStatement.Возвращаемый объект RowId является неизменным объектом, который можно использовать для последующих ссылок в качестве уникального идентификатора строки.Ниже приведен пример вызова метода ResultSet.getRowId:

java.sql.RowId rowId_1 = rs.getRowId(1);

String toString () Возвращает строку, представляющую значение ROWID SQL, обозначенное этим объектом java.sql.RowId.

...