为啥雪花 jdbc 会抛出 [XX000][200001] 错误

Posted

技术标签:

【中文标题】为啥雪花 jdbc 会抛出 [XX000][200001] 错误【英文标题】:Why snowflake jdbc throws [XX000][200001] error为什么雪花 jdbc 会抛出 [XX000][200001] 错误 【发布时间】:2021-06-09 09:50:03 【问题描述】:

我尝试通过 datagrip 和 DBeaver 在雪花上建立连接。测试连接在两者上都成功连接,但它不加载模式并引发如下错误:

[XX000][200001] JDBC driver internal error: exception creating result
java.lang.IllegalArgumentException: No enum constant
net.snowflake.client.jdbc.SnowflakeType.TİMESTAMP_LTZ at
java.base/java.lang.Enum.valueOf(Enum.java:240).

任何解决方案或面临其他任何人?

【问题讨论】:

去掉ITİMESTAMP_LTZ 中的dot? 从哪里删除?我只是试图建立联系,我还处于开始阶段。 @MarmiteBomber 我的观点,简单地删除它并替换它与我们在您的评论I just ..中使用的相同I(即没有dot 就可以了)-您的İ 有一个错误的char set 导致IMO 出现问题...如果发现它,请扫描配置文件。 感谢@MarmiteBomber 的帮助,下面的答案解决了这个问题。 【参考方案1】:

这是 java 程序中的常见错误,在您的 JDBC 驱动程序中。 这是由于在未指定语言环境的情况下将字符串转换为大写而导致的,默认为系统,在您的情况下为土耳其语,导致 "i".toUpperCase()"İ"

您可以为进程指定区域设置的解决方法。在 DataGrip 中,您可以转到数据源设置的高级选项卡并将-Duser.country=US -Duser.language=en 放入 VM 选项

【讨论】:

是的,原因是土耳其字符。这也可能是解决方案,但我只是将系统语言更改为英语并解决了。

以上是关于为啥雪花 jdbc 会抛出 [XX000][200001] 错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥有时会抛出 FileNotFoundException

为啥 FileOutputStream 会抛出 FileNotFoundException?

为啥“prepareCall”会抛出 NumberFormatException?

为啥 BluetoothSetLocalServiceInfo 会抛出错误 1314?

为啥geoip会抛出异常?

为啥这个 OdbcConnection 会抛出 System.InvalidOperationException?