Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So fügen Sie die UUID in die RAW(16)-Spalte ein

Sie müssen die UUID in ein Byte-Array konvertieren. Siehe die Methode asBytes wie es geht.

Danach ist die Bindung so einfach wie die Verwendung von setBytes .

Beispiel

def stmt = con.prepareStatement("insert into TAB_UUID (id, uuid) values (?,?)") 
// bind
stmt.setInt(1,1)
def uuid = UUID.randomUUID()
stmt.setBytes(2,asBytes(uuid)) 
def rowCount = stmt.executeUpdate()

Hier nur für den Fall, dass der Link die Konvertierungsmethode UUID zu Byte-Array nicht funktioniert

  public static byte[] asBytes(UUID uuid) {
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return bb.array();
  }