有点新问题:在我的数据库中,我有一个带二进制字段的表。我想在请求中不是取整个字段,而是取其中的一部分,最好使用ODBC。它可能吗?我正在使用PostgreSQL 8.3 - 以防该特定DBMS存在解决方案。感谢。
使用SQLGetData函数可以逐个获取数据,但我也想跳过blob的一部分而不加载它。所以问题可以表述如下:在通过SQLGetData读取blob时是否可以跳过一些字节?
答案 0 :(得分:1)
如果用blob表示PostgreSQL bytea,那么你可以使用select substring(bytea_column from ? for ?)
。
数据blob未压缩时速度很快 - 您应该使用alter table tablename alter column bytea_column set storage external
阻止自动压缩bytea。只有在alter table
之后插入的行才会被压缩,因此您应该在空表上执行此操作,或者在此命令之后删除并重新插入所有数据。
我正在使用它从数据库中以块的形式检索blob(二进制文件数据,如DOC或PDF)。效果很好。