【发布时间】:2020-09-28 02:34:11
【问题描述】:
我们更喜欢使用 $$ 表示法对 Snowflake 存储过程和 javascript UDF 进行编码。这更容易,因为我们不必担心转义代码中的每个单引号。但是,当我们使用 GET_DDL 检索 DDL 时,Snowflake 会删除 $$ 并将 SP 的主体放在单引号中,并且还会转义每个单引号。
有没有办法从 Snowflake 中获取 $$ 格式的 SP DDL?
例如,下面是我们创建的 SP。注意 $$ 符号,我们没有
CREATE OR REPLACE PROCEDURE "SP_TEST"()
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS $$
var result = snowflake.execute({sqlText: "select 'Hello World!' as test;"})
result.next();
return String(result.getColumnValue(1));
$$;
然后,当我们使用 SELECT GET_DDL('PROCEDURE','SP_TEST()') 从 Snowflake 检索 DDL 时,我们得到以下信息。请注意 $$ 已被单引号替换,并且所有其他单引号现在都已转义。
CREATE OR REPLACE PROCEDURE "SP_TEST"()
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS '
var result = snowflake.execute({sqlText: "select ''Hello World!'' as test;"})
result.next();
return String(result.getColumnValue(1));
';
谢谢
【问题讨论】:
标签: snowflake-cloud-data-platform