同じセットの Column Name (52+ coulmns) を持つ 2 つのテーブルがあります。これらの列間で変更されたレコードがあるかどうかを比較する Oracle 関数を作成する必要があります。EMP_ID
主キーです
以下の関数を使用しようとしていますが、間違った結果が得られます。次のように関数を呼び出しています。
get_data_change (emp_id, 'DEPT_NAME');
get_data_change (emp_id, 'PHONE_NUMBER');
私が作成した関数:
CREATE OR REPLACE function get_data_change (
in_emp_id varchar2, in_Column_Name varchar2)
return char is
v_data_changed char;
begin
select eid, in_Column_Name
into v_table1_eid, v_table1_Column_Value
from table 1
where eid=in_emp_id;
Select eid, in_Column_Name
into v_table2_eid, v_table2_Column_Value
from table 2
where eid = in_emp_id;
if ( v_table2_Column_Value != v_table1_Column_Value)
then
v_data_changed := 'Y'
else
v_data_changed :='N'
endif
return v_data_changed
end
end get_data_change;