我正在使用一种也称为ATaccama的数据治理,并且我已经在Snowflake中创建了一个SP,但是当我从Ataccama JDBC sql执行组件中调用SP时,却出现错误。但是,我正在为SNOWFLAKE使用最新的JDBC驱动程序:雪花jdbc 3.9.2。非常感谢您的帮助!
ERROR:
net.snowflake.client.jdbc.SnowflakeSQLException: Statement 'call PII.kc11_search...' cannot be executed using current API.
at net.snowflake.client.jdbc.SnowflakePreparedStatementV1.executeBatch(SnowflakePreparedStatementV1.java:937)
at com.ataccama.dqc.internal.commons.sql.AtcPreparedStatement.executeBatch(AtcPreparedStatement.java:307)
at com.ataccama.dqc.io.jdbc.writer.FlatCommitStrategy.executeBatch(FlatCommitStrategy.java:115)
at com.ataccama.dqc.io.jdbc.writer.BatchWriter.executeBatch(BatchWriter.java:54)
at com.ataccama.dqc.io.jdbc.writer.BatchWriter.flush(BatchWriter.java:98)
at com.ataccama.dqc.tasks.jdbc.execute.SqlExecuteQueryProcessor.finish(SqlExecuteQueryProcessor.java:106)
at com.ataccama.dqc.tasks.jdbc.execute.SQLStepInstanceBase$SimpleProcessingStrategy.run(SQLStepInstanceBase.java:249)
at com.ataccama.dqc.tasks.jdbc.execute.SQLStepInstanceBase.run(SQLStepInstanceBase.java:136)
at com.ataccama.dqc.processor.internal.runner.ComplexStepNode.runNode(ComplexStepNode.java:69)
at com.ataccama.dqc.processor.internal.runner.RunnableNode.run(RunnableNode.java:28)
at com.ataccama.dqc.commons.threads.AsyncExecutor$RunningTask.run(AsyncExecutor.java:131)at java.lang.Thread.run(Thread.java:745)
[[注意:使用-呼叫PII。 Kc11_seach()。]
有什么想法或其他有益的建议吗?
Snowflake JDBC驱动程序does not currently support执行任何SQL语句,这些语句可能返回值,这是Attacama在后台使用的PreparedStatement::executeBatch(…)
调用的一部分。这是因为批处理调用无法处理多个执行的SQL查询中的一个或多个返回的值。
由于CALL PROCEDURE()
may return a value,驱动程序将其视为可能生成结果并引发不受支持的语句错误的语句。
要通过Attacama调用过程,请使用其他组件,该组件在下面不使用JDBC的PreparedStatement::executeBatch(…)
调用。