gpt4 book ai didi

azure - 无法使用 ADF 脚本事件中的参数调用 Snowflake 过程

转载 作者:行者123 更新时间:2023-12-02 08:16:29 25 4
gpt4 key购买 nike

我真的很难用 Azure 数据工厂脚本事件的参数来调用雪花过程。

CALL data_validation_procedure('google_table');

但是当我在 Snowflake 工作表中运行此查询但在 ADF 脚本事件中运行此查询时,此调用过程的脚本运行良好

/image/wA8Q8.png /image/1UvWl.png

我遇到这个问题有什么原因吗?有什么解决方案或替代方案吗?

最佳答案

经过一番折腾,咨询了几位同事,终于找到了这个问题的原因并给出了解决方案。

实际上,ADF代码的流程和Script Activity并没有错误。

此原因的主要问题是由于我们的程序中使用的 into 关键字 与我们使用这些关键字的 ADF SCRIPT ACTIVITY 造成的冲突into 过程 SQL 脚本中的关键字,同时在声明的值中分配值,而 ADF 脚本事件实际上不支持该值。例如

Create or replace procedure ........
..........
DECLARE
max_value int;
BEGIN

SELECT MAX(dep_id) INTO:max_value FROM EMPLOYEE_TABLE
....
END;
....

在这种情况下,将最大 dep_id 分配给 ma​​x_value 时,ADF 脚本事件将像上面一样崩溃。

到目前为止,我完全不知道为什么此 ADF 事件不支持 Snowflake 中的 into 关键字。

解决方案

要解决此问题,一个简单的解决方案是不在要从 ADF 事件调用的过程中使用 INTO 关键字。

上面的SQL可以重写如下;

Create or replace procedure ........
..........
DECLARE
max_value int;
BEGIN

max_value=: (SELECT MAX(dep_id) FROM EMPLOYEE_TABLE);
....
END;
....

但是,如果您的要求强制使用 INTO 关键字,那么最好使用如下所示的嵌套过程;

  1. 创建一个名为 A 的驱动程序过程,该过程将从 ADF 调用,并且该过程不应包含任何 INTO 关键字。
  2. 使用脚本中的 into 关键字创建另一个过程 B
  3. 从过程A调用过程B

关于azure - 无法使用 ADF 脚本事件中的参数调用 Snowflake 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73066087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com