我在postgreSQL中有一个简单的表:
CREATE TABLE data ( id bigint NOT NULL, text_column text, );
正如我在phpPgAdmin网站上看到的那样,text_column的值是数字(长)。 在我读到的时候,postgreSQL会保留一个指向实际数据的指针。 如何获取text_column的实际字符串值? 做:
select text_column from data
返回数字......
由于
答案 0 :(得分:34)
以下帮助我们:
select convert_from(loread(lo_open(value::int, x'40000'::int), x'40000'::int), 'UTF8') from t_field;
其中value
是字段,其中包含TEXT
,而t_field显然是表的名称。
答案 1 :(得分:3)
从psql运行\ lo_export ID FILE其中ID是存储在表格的文本列中的数字,FILE是结果的路径和文件名。该数字是对大对象表的引用。您可以通过运行\ lo_list来查看其内容。
答案 2 :(得分:0)
工作正常,可能是字段值在数字中:
> \d+ type
Column | Type
name | text
test_id | integer
从类型中选择名称;
name
AAA
答案 3 :(得分:0)
如果它的 text_column 是文本,这意味着它是一个 oid,这也应该有效:
从数据中选择 convert_from(lo_get(text_column::oid), 'UTF8');
答案 4 :(得分:-3)
你一定读得太深了。选择它时,PostgreSQL 返回实际数据。如果它返回数字,则数字存储在字段中。