我試圖使用all_tab_columns將大型觸發器代碼簡化爲簡潔的代碼,因爲表中包含200列。使用動態sql嘗試時有一些原因,它不會讓我更新聲明的變量。使用Trigger的Oracle動態sql使用:new和:old變量
DECLARE
v_new_rec SOME_TABLE%ROWTYPE;
v_sql VARCHAR(4000);
BEGIN
SELECT 'v_new_act.' || lower(column_name) || ' := :new.' || lower(column_name)
INTO v_sql
FROM all_tab_columns
WHERE table_name = 'SOME_TABLE'
ORDER BY column_id;
EXECUTE IMMEDIATE v_sql USING v_new_rec;
EXEC my_stored_proc(v_new_rec);
END;
/
任何建議???