我有產生一個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的動態更新查詢變量? –