首页 > 解决方案 > Postgres ECPG char[] 与 VARCHAR[]

问题描述

我们正在使用 ECPG 和主机变量连接到 postgres 数据库。我们试图了解何时使用char[]vsVARCHAR[]作为我们的主机绑定变量。该文档没有提供任何优点/缺点或用例。

例如:

给定列

x VARCHAR (10)

我为什么要使用

EXEC SQL BEGIN DECLARE SECTION;
 char theX[10];
EXEC SQL END DECLARE SECTION;
cout << theX;

与说

EXEC SQL BEGIN DECLARE SECTION;
 VARCHAR theX[10];
EXEC SQL END DECLARE SECTION;
cout << theX.arr;

谢谢!

https://www.postgresql.org/docs/current/ecpg-variables.html

标签: postgresqlecpg

解决方案


您在 C 中使用哪种类型并不重要。正如文档所述,不同之处在于它VARCHAR是一个还包含字符串长度的结构,而char普通的以空字符结尾的 C 字符串。

如果您需要长度,VARCHAR可能会更方便。


推荐阅读