通过libpq将参数传递给HP Vertica会返回"语法错误"

时间:2014-06-21 17:33:16

标签: parameters vertica libpq

我尝试使用libpq从HP Vertica 6查询数据:   SELECT * FROM列WHERE table_name =?

并收回错误: 错误:语法错误在或附近" EOL" 第1行:... FROM列WHERE table_schema =?                                             ^

我也试过1美元而不是?,但它没有将它识别为参数。为什么呢?

1 个答案:

答案 0 :(得分:1)

我找到了从C ++应用程序向Vertica传递参数的方法!首先,应该准备声明。其次,应使用正确的类型编号(而不是为Postgres / libpq定义的默认编号)。类型编号的示例:

PGTYPE_INT8             = -5,
PGTYPE_INT2             = 5,
PGTYPE_INT4             = 4,
PGTYPE_TEXT             = -1,
PGTYPE_FLOAT4           = 7,
PGTYPE_FLOAT8           = 8,
PGTYPE_VARCHAR          = 12,
PGTYPE_DATE             = 91,
PGTYPE_TIME             = 92,
PGTYPE_TIMESTAMP        = 93,
PGTYPE_NUMERIC          = 2,