如何在更新期间将oid数据类型转换为varchar

时间:2013-11-29 09:25:45

标签: postgresql

我想要更新列image_name数据类型是oid   使用image1列数据类型是varchar

在更新过程中我遇到错误,如

更新mst_memberdetail set image_name = image1;

列“image”的类型为oid,但表达式的类型为字符变化

请告诉我如何转换显式数据类型

1 个答案:

答案 0 :(得分:0)

我假设image1是一个引用LOB的OID?如果是这样,您可能不希望将其直接更新为varchar,因为您将获得转义二进制文件(可能是十六进制)。如果这是您的用例,这是您想要在客户端库中执行的操作,而不是在db后端中。

或者你可以写一个PL / Perl函数来取消二进制文件,并使用lo_ *函数读取它,将它传递给PL / Perl并更新varchar,但如果你有编码问题会失败,那么会很慢。

如果您使用的是lobs,我建议您保留原样。