sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan afkodes PostgreSQL bytea kolonne hex til int16/uint16 i r?

Du kan starte med denne konverteringsfunktion, erstatte en hurtigere strsplit og brug readBin på resultatet:

byteArray <- "\\xffff00000100020003000400050006000700080009000a00"## Opdel en lang streng i en vektor af tegnparRcpp::cppFunction( code ='Character:V hext length) length()/2; CharacterVector res(længde); for (ufortegn int i =0; i  

Dette virker ikke for uint32 og (u)int64 , dog, da R bruger int32 internt. R kan dog også bruge numerics at gemme heltal under 2^52. Så vi kan bruge dette:

# uint32byteArray <- "\\xffffffff0100020003000400050006000700080009000a00"int32 <- readBin(con =f(byteArray), what ="heltal", n =4, fortegnsstørrelse, TR / UE endian ="lille")ifelse(int32 <0, int32 + 2^32, int32)# 4294967295 131073 262147 393221 524295 655369 

Og for gzip komprimerede data:

gzipbyteArray <- "\\ x1f8b0800000000000005c18701002008008002008008800, conne, lineche (rawconnection (f (byTeArRay, lea, lea, lea, lea, lea, lea =, white, længder, længder, længder, længder, længder, længder, længder, længder, længder, længder, længder, længder, længder, længder dig =2, fortegnet =TRUE, endian ="lille")close(con =con)

Da dette er en rigtig forbindelse, skal vi sørge for at lukke den.




  1. postgresql - erstat alle forekomster af en streng i tekstfeltet

  2. Normalisering i MYSQL

  3. xampp MySQL starter ikke

  4. SQL, Unikke og Primære nøgler