【发布时间】:2021-02-13 23:02:46
【问题描述】:
我需要在存储过程中使用 udf。由于 Redshift 需要临时表或游标才能在存储过程中使用 select 语句,所以我选择使用临时表。在存储过程中,调用 udf 的代码如下所示:
EXECUTE '如果存在则删除表' || tmp_name; EXECUTE '创建临时表' || tmp_name || ' as select f_MSG_log(' || i_trn_id,i_trm_msg_type_cd,i_trm_key_cd,i_trm_obj_cd,i_trm_msg_txt,i_log_level_opt,i_trm_file_nm_opt || ');';
当我调用存储过程时,它会抛出一个错误说: 亚马逊无效操作:查询“SELECT 'create temp table ' || $1 || ' as select f_MSG_log(' || $2 , $3 , $4 , $5 , $6 , $7 , $8 || ');'”返回 7 列; 1 条语句失败。
【问题讨论】:
标签: amazon-web-services amazon-redshift