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