19

我在 postgreSQL 中有一个以下简单的表:

CREATE TABLE data ( id bigint NOT NULL, text_column text, );

我在 phpPgAdmin 网站上看到的 text_column 的值是数字(长)。正如我所读到的,postgreSQL 保留了一个指向实际数据的指针。如何获取 text_column 的实际字符串值?正在做:

select text_column from data 

返回数字...

谢谢

4

4 回答 4

55

以下帮助了我们:

select convert_from(loread(lo_open(value::int, x'40000'::int), x'40000'::int),  'UTF8') from t_field;

其中value是字段,其中包含TEXT,而 t_field 显然是表的名称。

于 2015-05-29T12:15:39.993 回答
3

从 psql 运行 \lo_export ID FILE,其中 ID 是存储在表中文本列中的数字,FILE 是结果的路径和文件名。该数字是对大对象表的引用。您可以通过运行 \lo_list 查看其内容。

于 2014-10-21T22:58:18.993 回答
1

如果它的 text_column 是文本,这意味着它是一个 oid,这也应该有效:

从数据中选择 convert_from(lo_get(text_column::oid), 'UTF8');

于 2021-05-18T13:59:18.617 回答
-2

工作正常,可能是字段值是数字:

 > \d+ type

 Column    | Type    

 name      |  text   

 test_id   | integer   

从类型中选择名称;

  name 

   AAA
于 2012-08-28T09:00:19.253 回答