AWS Redshift Posix模式匹配

4

我正在使用jdbc查询Redshift集群。查询只有一个参数:

select * from table_name bc where bc.column_name ~ ? limit 10

我正在使用提供参数的方式

stmt.setString(1, "expected_value");

查询执行失败,出现异常:

org.postgresql.util.PSQLException: ERROR: The pattern must be a valid UTF-8 literal character expression
  Detail: 
  -----------------------------------------------
  error:  The pattern must be a valid UTF-8 literal character expression
  code:      8001
  context:   
  query:     496280
  location:  cgx_impl.cpp:1902
  process:   padbmaster [pid=4192]
  -----------------------------------------------

没有参数执行查询是正常的:

select * from table_name bc where bc.column_name 'expected_value' ? limit 10

有什么想法可以引起这个异常吗?


你在那里放置了什么“expected_value”?问题似乎与提供的模式有关。你使用了特殊字符吗?我能够在我的Redshift实例上运行它。 - isaac.hazan
一个字符串,具体为"BestSellersWording"。 - sumek
你使用的是哪个JDBC版本? - isaac.hazan
postgresql-8.4-702.jdbc4.jar - sumek
我猜你在psql shell上尝试了你的语句并且它成功了,对吧?我建议尝试另一个版本,我在使用Redshift时使用的是9.2-1004-jdbc41。 - isaac.hazan
1
使用psql可以工作,但使用其他版本的jdbc驱动程序无法工作。这似乎需要向亚马逊提出支持请求。 - sumek
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接