Stored procedures 如何在存储过程语法中传递模式“u name”变量;呼叫<&书信电报;模式\u名称\u变量>>;。storedproceduretask()

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

我试图在存储过程语法中将模式名作为变量传递(调用schema_name_var.sp_master_procedure();->下面给出的完整代码)。但当我尝试在红移中运行时,此代码失败。有人能为我提供一个解决方案吗

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解决了我的问题。