无法通过 Java 执行 Snowflake COPY 命令
Posted
技术标签:
【中文标题】无法通过 Java 执行 Snowflake COPY 命令【英文标题】:Unable to execute Snowflake COPY Command through Java 【发布时间】:2021-06-17 09:08:21 【问题描述】:我无法使用 java 从 SnowFlake 上的阶段加载数据。
我没有看到任何错误,但数据未从阶段“mystage”加载到表“TESTTABLE” 代码:
Connection connection = DriverManager.getConnection(connectionUrl, _connectionProperties);
Statement statement = connection.createStatement();
statement.executeQuery("copy into TESTTABLE (id, name) from (select $1, $2 from @mystage/F.csv.gz t);");
如果我在 SnowFlake 控制台中运行相同的命令,数据将正确加载到表“TESTTABLE”中。
【问题讨论】:
【参考方案1】:我们不知道默认连接指向哪个数据库/模式。我会尝试使用完全限定的表名:
statement.executeQuery("copy into <db_name>.<schema_name>.TESTTABLE (id, name) from (select $1, $2 from @mystage/F.csv.gz t);");
【讨论】:
是的,理想情况下我们也应该提供数据库和模式名称。【参考方案2】:我错误地注释掉了connection.commit();
,这就是问题所在。
【讨论】:
以上是关于无法通过 Java 执行 Snowflake COPY 命令的主要内容,如果未能解决你的问题,请参考以下文章
在 NextJS 中使用 Snowflake 无法连接或执行 getStaticPaths/getStaticProps 中的查询
无法使用 Talend 上传到 Snowflake 阶段,NoSuchMethodError
Snowflake DB UDF 可以执行 SQL 命令吗?