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

Indsættelse af tekststreng med hex i PostgreSQL som en bytea

Du kan konvertere en hex-streng til bytea ved at bruge decode funktion (hvor "kodning" betyder kodning af en binær værdi til en tekstværdi). For eksempel:

select decode('DEADBEEF', 'hex');
      decode      
------------------
 \336\255\276\357

hvilket er mere forståeligt med 9.0's standardoutput:

   decode   
------------
 \xdeadbeef

Grunden til at du ikke bare kan sige E'\xDE\xAD\xBE\xEF' er, at dette er beregnet til at lave en tekstværdi, ikke en bytea, så Postgresql vil forsøge at konvertere den fra klientkodningen til databasekodningen. Du kunne skrive bytea escape-formatet sådan, men du skal fordoble skråstregene:E'\\336\\255\\276\\357'::bytea . Jeg tror, ​​du kan se, hvorfor bytea-formatet bliver ændret.... IMHO decode() funktion er en rimelig måde at skrive input på, selvom der er nogle overhead involveret.



  1. Sådan konfigurerer du MySQL-replikering i RHEL, Rocky og AlmaLinux

  2. Bruger pyspark til at oprette forbindelse til PostgreSQL

  3. Hvordan tilpasser man konfigurationsfilen for det officielle PostgreSQL Docker-billede?

  4. Databasebelastningsbalancering med ProxySQL &AWS Aurora