如何从postgresql获取TEXT列值

时间:2012-08-28 08:43:59

标签: postgresql

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

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

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

select text_column from data 

返回数字......

由于

5 个答案:

答案 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 返回实际数据。如果它返回数字,则数字存储在字段中。