Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como inserir UUID na coluna RAW(16)


Você deve converter o UUID em uma matriz de bytes. Consulte o método asBytes como fazer isso.

Depois disso, a ligação é tão simples quanto usar setBytes .

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

Aqui, apenas para o caso de o link não funcionar, o método de conversão UUID para matriz de bytes
  public static byte[] asBytes(UUID uuid) {
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return bb.array();
  }