我目前正在将客户端代码从OCI更新到libq。我知道OCIDefineArrayOfStruct()和OCIBindArrayOfStruct()用于通过启用多行,多列获取来提高性能。有没有办法用libpq做同样的事情?
ddarikpa1#
PostgreSQL没有在客户端使用数组的批量获取或批量DML语句的概念。要批量获取行,请使用游标和FETCH语句。所有获取的行都将在单个PGresult中返回,您可以方便地遍历它们。要批量插入行,请使用多行INSERT语句或COPY。你将不得不从头开始重写使用C API的代码,因为Oracle和PostgreSQL的C API有很大的不同。好消息是PostgreSQL的API比Byzantine OCI方便得多。
FETCH
PGresult
INSERT
COPY
1条答案
按热度按时间ddarikpa1#
PostgreSQL没有在客户端使用数组的批量获取或批量DML语句的概念。
要批量获取行,请使用游标和
FETCH
语句。所有获取的行都将在单个PGresult
中返回,您可以方便地遍历它们。要批量插入行,请使用多行INSERT
语句或COPY
。你将不得不从头开始重写使用C API的代码,因为Oracle和PostgreSQL的C API有很大的不同。好消息是PostgreSQL的API比Byzantine OCI方便得多。