阅读 Ruby 中的 PostgreSQL Bytea 专栏
Read PostgreSQL Bytea column in Ruby
我正在尝试使用 Ruby 从 PostgreSQL 读取 bytea
列。
问题是它 return 是 bytea
值的十六进制编码字符串。
我希望它 return 与我用 File.read()
.
打开内容相同的二进制文件完全一样
下面给出了十六进制编码的值:
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
我想我需要使用 PG::TextDecoder::Bytea
来正确解码 bytea
列。这个对吗?如果是这样,应该如何使用它?
谢谢大家,但我想通了。答案是PG::Connection.unescape_bytea
:
require 'pg'
conn = PG.connect(...)
res = conn.exec('SELECT bytea_column FROM some_table')
res.each do |r|
raw = r['bytea_column']
binary_data = PG::Connection.unescape_bytea(raw)
puts "#{binary_data}"
end
我正在尝试使用 Ruby 从 PostgreSQL 读取 bytea
列。
问题是它 return 是 bytea
值的十六进制编码字符串。
我希望它 return 与我用 File.read()
.
下面给出了十六进制编码的值:
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
我想我需要使用 PG::TextDecoder::Bytea
来正确解码 bytea
列。这个对吗?如果是这样,应该如何使用它?
谢谢大家,但我想通了。答案是PG::Connection.unescape_bytea
:
require 'pg'
conn = PG.connect(...)
res = conn.exec('SELECT bytea_column FROM some_table')
res.each do |r|
raw = r['bytea_column']
binary_data = PG::Connection.unescape_bytea(raw)
puts "#{binary_data}"
end