使用node-postgres
查询Postgres数据库时,成功的查询将返回具有pg.Result
属性的oid
类型。
查询集合返回函数时,oid
是null
。
从函数中进行选择时,是否可以获取返回类型的oid
?
答案 0 :(得分:2)
Result.oid
属性与返回类型无关。
在Postgres 12之前,您可以使用CREATE TABLE ... WITH OIDS
在表中包括一个自动分配的oid
列。
在单行INSERT
到表WITH OIDS
中的特殊情况下,服务器的CommandComplete
response包含新行的oid
。对于所有其他INSERT
,oid
为零,对于所有其他命令,响应不包含oid
。
node-postgres
source显示Result.oid
属性是从此响应派生的。对于SELECT
响应,从不分配oid
,因此无论您要查询什么,null
都将被分配。此值(以及通常用于OID列)的有限用途可能解释了为什么oid
属性为undocumented的原因。
返回类型与结果的列相关联,而不与结果整体相关联。您可以使用以下方式获取列的OID类型:
result.fields[0].dataTypeId