postgresql/greenplum参数绑定在jdbc上,为什么它认为它是一个列名?

postgresql/greenplum参数绑定在jdbc上,为什么它认为它是一个列名?,jdbc,parameters,greenplum,Jdbc,Parameters,Greenplum,我有一个类似以下内容的查询: SELECT A.A, A.B, B.A, B.C, B.D FROM tableone A, tabletwo B WHERE A.A = B.A AND B.C = :p_name 当param:p_name设置为FOO时,会出现如下错误: SELECT A.A, A.B, B.A, B.C, B.D FROM tableone A, tabletwo B WHERE A.A = B.A AND B.C = :p_name [42703]错误:列“FOO”不

我有一个类似以下内容的查询:

SELECT A.A, A.B, B.A, B.C, B.D
FROM tableone A, tabletwo B
WHERE A.A = B.A
AND B.C = :p_name
当param:p_name设置为FOO时,会出现如下错误:

SELECT A.A, A.B, B.A, B.C, B.D
FROM tableone A, tabletwo B
WHERE A.A = B.A
AND B.C = :p_name
[42703]错误:列“FOO”不存在

当我手动将其设置为包含单引号“FOO”时,它可以工作

我试过填充转义单引号。我试过quote_*函数。我已经使用“@”“美元”和“?”参数进行了ried。这种情况不断出现

编辑

尽我所能,我在IntelliJ中的sql控制台中尝试了以下内容

SELECT * from A where A.B = :p1 
SELECT * from A where A.B = ? 
SELECT * from A where A.B = @p1
并将“Foo”参数添加到编辑框中。在这三种情况下,我都遇到了同样的问题。当我将“Foo”添加到编辑框时,我会得到预期的结果

我还使用了准备好的报表和?而不是callableStatement:p1,也得到了相同的结果

我做错了什么

编辑


从JDBCURL中删除“stringtype=unspecified”似乎可以解决这个问题。这就是为什么您不应该只复制代码片段或其他人的代码,而只是假设它对您有用

如果使用的是
PreparedStatement
,则需要使用
而不是命名参数。@mu我通过asString@a_horse我试着使用“?”得到同样的结果。请给我们看一下您的Java代码。