Мне нужно создать хранимую процедуру, которая обнаружит старое значение и новое значение обновленной записи. Он должен включать в себя запрос Dynami c для поиска имени столбца во время выполнения.
Для этого я использую oracle 12 C.
create table student (
id number(6) primary key,
name varchar2(50),
city varchar2(50),
address varchar2(100),
createdDateTime date,
updatedDatetime date
);
insert into student values(1,'abc1','abc1','abc1','09-Jan-20','12-Jan-20');
insert into student values(2,'pqr','pqr','pqr','09-Jan-20',null);
таблица ученика-
ID Name City Address Create_time UpdatedTime
1 abc1 abc1 abc1 09-Jan-20 12-Jan-20
2 pqr pqr pqr 09-Jan-20 null
create table studentHistory (
id number(6) ,
name varchar2(50),
city varchar2(50),
address varchar2(100),
DatetimeCreated date
);
insert into StudentHistory values(1,null,'abc',null,'10-Jan-20');
insert into StudentHistory values(1,'abc',null,null,'11-Jan-20');
insert into StudentHistory values(1,null,null,'abc','12-Jan-20');
Таблица истории учащегося -
ID Name City Address DatetimeCreated
1 null abc null 10-Jan-20
1 abc null null 11-Jan-20
1 null null abc 12-Jan-20
Требуемый результат ->
Id ColumnName Old Value New Value Updatetime
1 City abc abc1 '10-01-20'
1 name abc abc1 '11-01-20'
1 City abc abc1 '12-01-20'