当我在 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 表的磁盘空间?
当我在 ngOnInit() 中使用 router.getCurrentNavigation() 时,它会给我类型错误,但是当我在构造函数中使用它时,它工作正常,为啥?