我有产生一个SELECT查询动态使用一些函数。如果.I已经存储了该查询在一个TEXT型变量作为PostgreSQL的动态SQL查询执行
CREATE OR REPLACE FUNCTION func_updateanswercodes(ans_id_param BIGINT,
que_id_param BIGINT,
overwrite_param INTEGER,
new_ans_code_param CHARACTER VARYING)
RETURNS INTEGER AS
$BODY$
...................
................
...................
dyn_sql = 'SELECT ' || que_col_name || ' INTO old_ans_col_val FROM';
IF SUBSTR(que_col_name, 0, 8) = 'pro_ans' THEN
dyn_sql = dyn_sql || ' profile_answers JOIN registrations ON (pro_ans_frn_pro_id = reg_frn_pro_id)';
ELSIF SUBSTR(que_col_name, 0, 8) = 'reg_ans' THEN
dyn_sql = dyn_sql || ' reg_answers ';
ELSIF SUBSTR(que_col_name, 0, 8) = 'tvl_ans' THEN
dyn_sql = dyn_sql || ' tvl_answers '; --35
END IF;
dyn_sql = dyn_sql || ' WHERE';
IF SUBSTR(que_col_name, 0, 8) = 'pro_ans' THEN
dyn_sql = dyn_sql || ' reg_id ';
ELSIF SUBSTR(que_col_name, 0, 8) = 'reg_ans' THEN
dyn_sql = dyn_sql || ' reg_ans_frn_reg_id ';
ELSIF SUBSTR(que_col_name, 0, 8) = 'tvl_ans' THEN
dyn_sql = dyn_sql || ' tvl_ans_frn_reg_id ';
END IF;
dyn_sql = dyn_sql || '= ' || CAST(temp_reg AS VARCHAR) ||';'
/* Here want to execute that query in variable dync_sql
...........................
.............................
.......................
END;
$BODY$
LANGUAGE plpgsql VOLATILE
但随着PLPGSQL(PL/SQL为否则条件postgres)我不知道如何在一个变量中执行相同的查询。请帮我解决一下这个 。 由于提前
谢谢@Daniel可以在更新查询中引导我。我在dyn_sql中有一个更新查询,并且想要设置一个列值,我怎样才能使用dyn_sql的动态更新查询变量? –