Postgres ECPG char[] 与 VARCHAR[]
Postgres ECPG char[] vs. VARCHAR[]
我们正在使用 ECPG 和主机变量连接到 postgres 数据库。我们试图了解何时使用 char[]
与 VARCHAR[]
作为我们的主机绑定变量。该文档不提供任何 pros/cons 或用例。
例如:
给定列
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;
谢谢!
在 C 中使用哪种类型并不重要。正如 the documentation 所描述的,区别在于 VARCHAR
是一个还包含字符串长度的结构,而 char
是正常的以 null 结尾的 C 字符串。
如果需要长度,VARCHAR
可能更方便。
我们正在使用 ECPG 和主机变量连接到 postgres 数据库。我们试图了解何时使用 char[]
与 VARCHAR[]
作为我们的主机绑定变量。该文档不提供任何 pros/cons 或用例。
例如:
给定列
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;
谢谢!
在 C 中使用哪种类型并不重要。正如 the documentation 所描述的,区别在于 VARCHAR
是一个还包含字符串长度的结构,而 char
是正常的以 null 结尾的 C 字符串。
如果需要长度,VARCHAR
可能更方便。