我正在尝试将下面的azure sql存储过程转换为snowflake。但我还没有找到exec语句的替代方案:
CREATE PROC SAMPLE_PROC
AS
BEGIN
DECLARE @BusinessUnitKey INT=(SELECT BusinessUnitKey FROM BusinessUnit WHERE BusinessUnitName='ABC') ;
DECLARE @LoadDate DATETIME= (SELECT Cast(GETUTCDATE() as Date)) ;
DECLARE @DataLoadLogKey INT = (
SELECT MAX(DataLoadLogKey)
FROM DataLoadLog
WHERE BusinessUnitKey = @BusinessUnitKey
)
,@TableName VARCHAR(100) = 'ProductType'
,@StoredProcName VARCHAR(100) = (object_name(@@procid))
,@StarDateTime DATETIME = @LoadDate
,@EndDateTime DATETIME = NULL
,@Status VARCHAR(100) = 'In Progress'
,@LoadDescription VARCHAR(1000) = 'Loading Data' ;
EXEC dbo.usp_procedure @DataLoadLogKey = @DataLoadLogKey
,@TableName = @TableName
,@StoredProcName = @StoredProcName
,@StarDateTime = @StarDateTime
,@EndDateTime = NULL
,@Status = @Status
,@LoadDescription = @LoadDescription ;
END;
有人能在snowflake中提供相应的execute语句吗?
2条答案
按热度按时间f5emj3cl1#
雪花存储过程是用javascript编写的,它可以通过调用javascript api来执行sql语句。此api类似于雪花连接器和驱动程序(node.js、jdbc、python等)中的api,但不完全相同。
细节:https://docs.snowflake.com/en/sql-reference/stored-procedures-usage.html#implementation-及空气污染指数
您可以找到几个代码示例:https://docs.snowflake.com/en/sql-reference/stored-procedures-usage.html#examples
t0ybt7op2#
请看一下文档中使用存储过程的步骤。
这是一个应该编译的粗略存根。我无法测试代码,因为我没有用于验证表或数据的ddl,但这应该给您一个好的开始。
顺致敬意,