作者:未知
发布日期:未知
描述:在 Microsoft Access 中使用大对象(来自原始 psqlODBC 文档的笔记)
大对象在驱动程序中映射到 LONGVARBINARY,以允许存储诸如 Microsoft Access 中的 OLE 对象之类的内容。通常使用多个 SQLPutData 和 SQLGetData 调用来发送和检索这些对象。驱动程序创建一个新的 大对象,并将它的“标识符”插入到相应的表中。但是,由于 PostgreSQL 使用“Oid”来标识大对象,因此有必要创建一个新的 PostgreSQL 类型,以便能够区分普通 Oid 和大对象 Oid。在该新类型成为 PostgreSQL 的正式部分之前,必须将其添加到所需的数据库中,并在每次连接时进行查找。驱动程序中使用的类型简单地称为“lo”,以下是用于创建它的命令:
create type lo ( internallength=4, externallength=10, input=int4in, output=int4out, default='', passedbyvalue );
完成此操作后,只需使用新的“lo”类型来定义该数据库中的列。请注意,对于每个要使用驱动程序中的大对象的数据库,都必须执行此操作。当驱动程序看到“lo”类型时,它将将其视为 LONGVARBINARY。
另一个重要的注意事项是,这种新类型缺乏功能。它不会在更新和删除后自行清理,从而导致遗留对象并占用额外的磁盘空间。目前,PostgreSQL 不支持对大对象的清理。希望将来能够提供真正的 大对象数据类型。
但就目前而言,将 Word 文档、Visio 文档或跳舞婴儿的 avi 文件放入数据库列中确实很有趣,即使你最终会填满服务器的硬盘!