参数化 DDL SQL 雪花
Parameterize DDL SQL Snowflake
在下面的代码中有什么方法可以参数化 sst 部分。
我尝试使用 concat 和 set ssourl=url, sst = $ssour
l 等其他方法,但没有成功。还有许多其他方法,例如使用 concat、Identifier。
我无法参数化证书,因为它有 256 字节的限制。有什么方法可以在下面的代码中参数化 sst 。谢谢
alter account set saml_identity_provider = '{
"cert": "XXXXXXXXXXXXXXXXXXX",
"sst": "https://corp.com/app/<app_id>/sso/saml",
"type" : "test"
"label" : "singlesignOn"
}';
可以使用 Snowflake 脚本块来完成:
DECLARE
CERT STRING DEFAULT 'XXXXXXXXXXXXXXXXXXX';
SST STRING DEFAULT 'https://corp.com/app/<app_id>/sso/saml';
TYPE STRING DEFAULT 'test';
SQL STRING DEFAULT $$alter account set saml_identity_provider = '{
"cert": "<cert>",
"sst": "<sst>",
"type" : "<test>"
"label" : "singlesignOn"
}'$$;
BEGIN
SQL := REPLACE(:SQL, '<cert>', :CERT);
SQL := REPLACE(:SQL, '<sst>', :SST);
SQL := REPLACE(:SQL, '<type>', :TYPE);
EXECUTE IMMEDIATE :SQL;
RETURN :SQL;
END;
输出:
编辑:
Using Snowflake Scripting in SnowSQL and the Classic Web Interface
EXECUTE IMMEDIATE $$
DECLARE
CERT STRING DEFAULT 'XXXXXXXXXXXXXXXXXXX';
SST STRING DEFAULT 'https://corp.com/app/<app_id>/sso/saml';
TYPE STRING DEFAULT 'test';
SQL STRING DEFAULT 'alter account set saml_identity_provider =' || CHAR(39) || '{"cert": "<cert>", "sst": "<sst>","type" : "<test>" "label" : "singlesignOn"}' || CHAR(39);
BEGIN
SQL := REPLACE(:SQL, '<cert>', :CERT);
SQL := REPLACE(:SQL, '<sst>', :SST);
SQL := REPLACE(:SQL, '<type>', :TYPE);
EXECUTE IMMEDIATE :SQL;
RETURN :SQL;
END;
$$;
输出:
在下面的代码中有什么方法可以参数化 sst 部分。
我尝试使用 concat 和 set ssourl=url, sst = $ssour
l 等其他方法,但没有成功。还有许多其他方法,例如使用 concat、Identifier。
我无法参数化证书,因为它有 256 字节的限制。有什么方法可以在下面的代码中参数化 sst 。谢谢
alter account set saml_identity_provider = '{
"cert": "XXXXXXXXXXXXXXXXXXX",
"sst": "https://corp.com/app/<app_id>/sso/saml",
"type" : "test"
"label" : "singlesignOn"
}';
可以使用 Snowflake 脚本块来完成:
DECLARE
CERT STRING DEFAULT 'XXXXXXXXXXXXXXXXXXX';
SST STRING DEFAULT 'https://corp.com/app/<app_id>/sso/saml';
TYPE STRING DEFAULT 'test';
SQL STRING DEFAULT $$alter account set saml_identity_provider = '{
"cert": "<cert>",
"sst": "<sst>",
"type" : "<test>"
"label" : "singlesignOn"
}'$$;
BEGIN
SQL := REPLACE(:SQL, '<cert>', :CERT);
SQL := REPLACE(:SQL, '<sst>', :SST);
SQL := REPLACE(:SQL, '<type>', :TYPE);
EXECUTE IMMEDIATE :SQL;
RETURN :SQL;
END;
输出:
编辑:
Using Snowflake Scripting in SnowSQL and the Classic Web Interface
EXECUTE IMMEDIATE $$
DECLARE
CERT STRING DEFAULT 'XXXXXXXXXXXXXXXXXXX';
SST STRING DEFAULT 'https://corp.com/app/<app_id>/sso/saml';
TYPE STRING DEFAULT 'test';
SQL STRING DEFAULT 'alter account set saml_identity_provider =' || CHAR(39) || '{"cert": "<cert>", "sst": "<sst>","type" : "<test>" "label" : "singlesignOn"}' || CHAR(39);
BEGIN
SQL := REPLACE(:SQL, '<cert>', :CERT);
SQL := REPLACE(:SQL, '<sst>', :SST);
SQL := REPLACE(:SQL, '<type>', :TYPE);
EXECUTE IMMEDIATE :SQL;
RETURN :SQL;
END;
$$;
输出: