J'essaye de lire une colonne bytea
de PostgreSQL en utilisant Ruby. Le problème est qu'il renvoie la chaîne codée en hexadécimal de la valeur bytea
. Je voudrais qu'il retourne exactement la même chose que si j'ouvrais un fichier binaire avec le même contenu avec File.read()
.Lire la colonne PostgreSQL Bytea dans Ruby
Ce qui suit me donne la valeur codée hexagonale:
require 'pg'
conn = PG.connect(...)
res = conn.exec('SELECT bytea_column FROM some_table')
res.each do |r|
raw = r['bytea_column']
puts "#{raw}"
end
Je pense que je dois utiliser PG::TextDecoder::Bytea
pour décoder correctement la colonne bytea
. Est-ce correct? Et si oui, comment exactement est-il censé être utilisé?
Une chose à éviter dans Ruby est de faire "# {x}" 'au lieu de' x'. Il n'y a aucune raison d'entourer quelque chose entre guillemets comme ça. 'puts' va se convertir en une chaîne s'il le juge nécessaire. – tadman