sql >> Databasteknik >  >> RDS >> Oracle

Hur man infogar UUID i kolumnen RAW(16).

Du måste konvertera UUID till en byte-array. Se metoden asBytes hur man gör.

Efter det är bindningen enkelt som att använda setBytes .

Exempel

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

Här bara för att länken inte fungerar, konverteringsmetoden UUID till byte-array

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


  1. Har databaser förutom Postgres funktioner som är jämförbara med utländska dataomslag?

  2. Exec lagrad procedur i dynamisk temptabell

  3. Spara felet i MySQL-databasen

  4. PostgreSQL-fråga med dynamiska kolumner och antal från join