gpt4 book ai didi

PostgreSQL:以非编程方式(使用工具)选择大对象(例如,文本)

转载 作者:行者123 更新时间:2023-11-29 11:39:18 26 4
gpt4 key购买 nike

我们将 PostgreSQL 与 JPA 结合使用,它将大字符串映射到类型为 TEXT 的列。

虽然我们能够以编程方式读取和写入数据,但当我选择数据时,pgAdmin 和 psql 只会向我显示对象 ID。

是否有一种方法/工具可以在不使用某些 API(例如 JDBC)的情况下快速选择数据?

一个例子:

doi=> \d+ xmlsnippet;
Table "doi.xmlsnippet"
Column | Type | Modifiers | Storage | Description
--------------+------------------------+-----------+----------+-------------
dbid | bigint | not null | plain |
version | bigint | not null | plain |
datasnippet | text | | extended |
doi | character varying(255) | | extended |
doipool_dbid | bigint | | plain |

datasnippet 列包含一些大字符串(带有 XML 代码)

当我选择它时,我得到

doi=> select * from xmlsnippet;
dbid | version | datasnippet | doi | doipool_dbid
-------+---------+-------------+--------------------------+--------------
43 | 0 | 282878 | 10.3929/ethz-a-000077127 | 13
44 | 0 | 282879 | 10.3929/ethz-a-000085677 | 13
45 | 0 | 282880 | 10.3929/ethz-a-000085786 | 13
46 | 0 | 282881 | 10.3929/ethz-a-000087642 | 13
47 | 0 | 282882 | 10.3929/ethz-a-000088898 | 13

^^^^^^^

编辑:如果我使用 JDBC 执行相同的查询,我会得到预期的内容(我存储在列中的文本)

最佳答案

也许“常见嫌疑人”之一(即 JPA/Hibernate/PostgreSQL JDBC 驱动程序)将列映射到 PostgreSQL 的“大对象”系统。

psql shell 中的快速测试:

db=> \lo_export 282878 /tmp/x.txt
lo_export

会将示例中第一个 id 引用的内容导出到文件 /tmp/x.txt 中。与编辑器一起检查。告诉我们这是否是您的数据。

如果这种映射真的发生了,那么你就有了维护问题——大对象必须手动删除,并且有一些其他的内在缺点。但那是另一回事了。

关于PostgreSQL:以非编程方式(使用工具)选择大对象(例如,文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9432884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com