Stored procedures 如何在存储过程语法中传递模式“u name”变量;呼叫<&书信电报;模式\u名称\u变量>>;。storedproceduretask()
我试图在存储过程语法中将模式名作为变量传递(调用schema_name_var.sp_master_procedure();->下面给出的完整代码)。但当我尝试在红移中运行时,此代码失败。有人能为我提供一个解决方案吗Stored procedures 如何在存储过程语法中传递模式“u name”变量;呼叫<&书信电报;模式\u名称\u变量>>;。storedproceduretask(),stored-procedures,amazon-redshift,plpgsql,Stored Procedures,Amazon Redshift,Plpgsql,我试图在存储过程语法中将模式名作为变量传递(调用schema_name_var.sp_master_procedure();->下面给出的完整代码)。但当我尝试在红移中运行时,此代码失败。有人能为我提供一个解决方案吗 CREATE OR REPLACE PROCEDURE master_work_se.sp_master_table_automation() LANGUAGE plpgsql AS ' DECLARE schema_name_var nvarc
CREATE OR REPLACE PROCEDURE master_work_se.sp_master_table_automation()
LANGUAGE plpgsql
AS '
DECLARE
schema_name_var nvarchar(max) = 'master_work_se';
BEGIN
CALL schema_name_var.sp_master_procedure();
END;
END;
';
您需要动态SQL:
EXECUTE format('CALL %I.sp_master_procedure()', schema_name_var);
非常感谢。将调用过程的语法转换为字符串并使用EXECUTE解决了我的问题。