Snowflake cloud data platform 雪花-如何检索当前正在执行的过程的名称?

Snowflake cloud data platform 雪花-如何检索当前正在执行的过程的名称?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我想在javascript过程本身中访问Snowflake中当前正在执行的过程的名称,并将其存储在变量中 当我询问“this”对象时,我可以在变量返回中看到名称,但就JSON而言,我认为是名称而不是值,我不确定如何在JSON对象中检索第一个名称 获取过程名称需要使用什么代码? procName=???这个对象的代码是什么 我们知道“this”中的第一个名称/值对始终是过程名称吗? CREATE OR REPLACE PROCEDURE EDW_ADMIN.DAG_TEST() RETURNS V

我想在javascript过程本身中访问Snowflake中当前正在执行的过程的名称,并将其存储在变量中

当我询问“this”对象时,我可以在变量返回中看到名称,但就JSON而言,我认为是名称而不是值,我不确定如何在JSON对象中检索第一个名称

获取过程名称需要使用什么代码?
procName=???这个对象的代码是什么

我们知道“this”中的第一个名称/值对始终是过程名称吗?

CREATE OR REPLACE PROCEDURE EDW_ADMIN.DAG_TEST()
RETURNS VARIANT
LANGUAGE JAVASCRIPT
AS 
$$
var procName = "";
// procName = this.??? WHAT DO I PUT HERE ???
return this;
$$
;
“此”的返回/内容包括:

在您的程序中尝试以下操作:

const procName = Object.keys(this)[0];

假设procName始终是字典中的第一个键!尽可能地使用const也是一种很好的做法。

存储的进程名也是我的第一个键。这种方法很不错,但如果Snowflake决定稍微更改“This”对象,确实会让您面临风险:(是的-我会向他们提交一张罚单,以确保他们在我开始制作之前将其锁定。感谢您的回答,这是完美的,感谢您对“const”使用的指导-很棒!假设字典中属性的顺序有点冒险。巧合的是,过程名称在文本排序中排在第一位。请尝试将过程重命名为
X\u DAG\u TEST
(大写
X
)然后看看会发生什么…你不能将进程的名称作为参数传入?如果你不是动态调用存储的进程,那么这应该是一种非常可靠的方法。日志过程将使用进程名称,这样日志表中就有一系列不同程序的条目。我希望它是傻瓜式的,如果你传入当调用它或将它硬编码为一个常量时,在进程顶部输入进程的名称,这很容易导致开发人员错误。
const procName = Object.keys(this)[0];