Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment insérer un UUID dans la colonne RAW(16)

Vous devez convertir l'UUID en un tableau d'octets. Voir la méthode asBytes comment faire.

Après cela, la liaison est aussi simple que d'utiliser setBytes .

Exemple

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()

Ici, juste au cas où le lien ne fonctionne pas, la méthode de conversion UUID en tableau d'octets

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