我正在尝试将 Snowflake 连接到基于 Spring boot 的应用程序。一切正常,但是由于雪花中的一些疯狂默认值,我不得不处理以下错误: https://community.snowflake.com/s/article/SAP-BW-Java-lang-NoClassDefFoundError-for-Apache-arrow
我可以通过 Spring data JPA 触发查询,但根本无法映射结果。该解决方案要求将默认结果集格式从 ARROW 更改为 JSON:
Customer can use this property (jdbc_query_result_format=json) in datasouce property of Application server or session property in application like
Statement = connection.createStatement();
Statement.executeQuery("ALTER SESSION SET JDBC_QUERY_RESULT_FORMAT='JSON'");
我只是想知道如何使用 Spring ie 来实现这一点。在引导期间运行上述 SQL。我正在使用 Spring data JPA 查询。
最佳答案
参数 JDBC_QUERY_RESULT_FORMAT 可以针对每个帐户/用户/ session 进行设置,因此,如果您始终希望为该用户提供 JSON,则只能通过 Snowflake UI 直接设置它一次:
ALTER USER <youruser> SET JDBC_QUERY_RESULT_FORMAT='JSON';
这只会影响您的用户,并且该帐户仍将默认使用 ARROW。而且您不需要一直在 session 级别设置它。
关于java - Spring boot - Snowflake JDBC - 应用程序加载时自动更改 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71487403/