sql - 从 sql 表中查询二进制字段的一部分

标签 sql postgresql odbc

一个新问题:在我的数据库中,我有一个带有二进制字段的表。我不想获取请求中的整个字段,而是获取其中的一部分,最好使用 ODBC。有可能吗?我正在使用 PostgreSQL 8.3 - 以防该特定 DBMS 存在解决方案。谢谢。

使用 SQLGetData 函数似乎可以逐部分获取数据,但我也想跳过 blob 的一部分,而不加载它。所以问题可以表述为:SQLGetData 读取 blob 时是否可以跳过一些字节?

最佳答案

如果你所说的 blob 是指 PostgreSQL bytea,那么你可以使用 select substring(bytea_column from ? for ?)

数据 blob 未压缩时速度很快 - 您应该使用 alter table tablename alter column bytea_column set storage external 防止自动压缩 bytea。只有在 alter table 之后插入的行不会被压缩,因此您应该在空表上执行此操作,或者在此命令后删除并重新插入所有数据。

我正在使用它以 block 的形式从数据库中检索 blob(二进制文件数据,如 DOC 或 PDF)。效果很好。

关于sql - 从 sql 表中查询二进制字段的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1554809/

相关文章:

python - 我如何在 sqlalchemy ORM 中表达这个查询?

sql - 在SQL Server中更新相同的表

postgresql - 在 SQLAlchemy 中反射(reflect)具有继承的 PostgreSQL 数据库导致缺少外键关系

java - 使用Java读取Excel文件

mysql - 移动服务器后出现错误 MyODBC 字段 'img_valid' 没有默认值

mysql - MS Access 将链接表更改为 AWS MySQL Db 会减慢表单/报告的速度

php mysql 显示表中的记录

mysql - MySQL中任何字段更新时调用HTTP请求的方法

sql - PostgreSQL 会优化 LIKE '%' 吗?

sql - 按 id 将行聚合为一个 - postgres