当我在 Redshift 中使用 Any 时,它会崩溃:在“,”或附近出现语法错误

Posted

技术标签:

【中文标题】当我在 Redshift 中使用 Any 时,它会崩溃:在“,”或附近出现语法错误【英文标题】:When I use Any in Redshift , crash it : syntax error at or near "," 【发布时间】:2019-11-26 18:22:56 【问题描述】:
var variable ="Select columns1,columns2,columns3 from schema.table where columns1 = ANY(@idsNumber)";

connection.Query(variable, new  idsNumber= new[]  123, 432  ).ToList();

我有这段代码用于搜索我的 Redshift 数据库中的记录,但是当执行此代码时,他会崩溃一个错误

无效操作:“,”或附近的语法错误

我不知道为什么会这样,Redshift 基于 postgres,而 postgres 使用 ANY not IN(IN 也不起作用)。

编辑

我使用 dapper,并像这样在 DAO 中声明我的连接

using (var connection = new NpgsqlConnection(RedshiftConnection.GetSecret(context, ESecretNameRedShift.DatabaseName)))
        

你能帮帮我吗?

【问题讨论】:

能否请您显示更多代码,以便我们尝试重现您的情况?例如,connection 是在哪里定义的,您使用的是什么驱动程序?另外,请向我们展示IN 不起作用的示例。 (您可以编辑您的问题以添加这些详细信息。) 好的,我现在就这样做 我也收到同样的错误“[Amazon](500310) Invalid operation: syntax error at or near ",", 当试图在 SQL WORKBENCH/J IDE(Build 125)。这是我的脚本“ALTER TABLE employeetest ADD COLUMN last_name varchar(100) DEFAULT NULL, ADD COLUMN email varchar(100) DEFAULT NULL;” 【参考方案1】:

来自***: SELECT * FROM X WHERE id IN (…) with Dapper ORM:

string sql = "SELECT * FROM SomeTable WHERE id IN @ids"
var results = conn.Query(sql, new  ids = new[]  1, 2, 3, 4, 5 );

【讨论】:

以上是关于当我在 Redshift 中使用 Any 时,它会崩溃:在“,”或附近出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon Redshift 中,虽然我已将 service_date 列指定为 Date 数据类型,但是当我在 IN 运算符中获取日期时,它仅使用引号

使用 Elastic Beanstalk 时保留 WAR 名称

从 UserDefaults 获得的布尔值打印为 0 或 1,即使保存为 Any

当我在 Redshift 中使用 DISTSTYLE ALL 分发表时,每个计算节点上的切片如何占 DISTSTYLE ALL'd 表的磁盘空间?

日期数学不会在 R 与 Redshift 中产生相同的结果

当我在 ngOnInit() 中使用 router.getCurrentNavigation() 时,它会给我类型错误,但是当我在构造函数中使用它时,它工作正常,为啥?