我有以下查询
INSERT INTO SESSIONINFO(ID, LASTMODIFICATIONDATE, RULESBYTEARRAY, STARTDATE) VALUES
(1, NULL, '\xaced0005774d0a060805100418005243080010001a3918002000320608011000180042121a080a044d41494e100022060a044d41494e52090a0744454641554c545a0c0a0a0805320608001000180122026800')
当我尝试执行上述语句时出现以下错误
ERROR: invalid input syntax for type oid: "\xaced0005774d0a060805100418005243080010001a3918002000320608011000180042121a080a044d41494e100022060a044d41494e52090a0744454641554c545a0c0a0a0805320608001000180122026800"
如何解决这个问题..
答案 0 :(得分:1)
我认为你混淆了oid
和bytea
。
bytea
用于连续的二进制数据。您的RULESBYTEARRAY
列几乎肯定会以bytea
为其类型。请参阅手册中的binary data types。
oid
列类型是一个简单的32位无符号整数。 PostgreSQL使用它来引用系统表和各种其他东西。其中一个用途是引用pg_largeobject
表中的行,这些行可用于存储类似文件的对象。
如果要存储和检索二进制数据,几乎肯定要使用bytea
- 类型字段,而不是pg_largeobject
。 pg_largobject
适用于您想要读取和修改的非常非常大的数据和/或数据,而无需每次都加载整个批次,并在您更改任何内容时将其全部写回。