首页 > 解决方案 > 解析 SQL 查询字符串 PostgreSQL 时出错?

问题描述

我试图执行下面的代码。

var sqlText = "SELECT user_id, role_id FROM app_user WHERE user_roles ?? role_id::text AND role_is_active = 'Y' AND user_id = :user_id";

queryExecute( sqlText, {user_id: { value: 24, cfsqltype: "integer" }}, {datasource : "test_db"});

每次我尝试运行查询时都会出现错误消息。

Detail: Lesser number (1) of positional parameters are defined for sql query':' [SELECT user_id, role_id FROM app_user WHERE user_roles ?? role_id::text AND role_is_active = 'Y' AND user_id = ?]
Message: Error while Parsing SQL query string.

我尝试在 DBeaver 中执行查询并按预期工作。然后我尝试消除 Where 子句中的参数。一旦我删除了user_roles ?? role_id::text查询执行得很好。我想知道为什么使用此过滤器无法执行查询user_roles ?? role_id::text?有什么我必须改变的吗?谢谢你。

标签: postgresqlcoldfusion

解决方案


推荐阅读