oracle - Comparing record type in pl/sql -


i have 2 tables like:

table 1 columns: prd_id, comp, td1, td2, td3

table 2 columns: acc_id, comp, td1, td2, td3

above account_id mapped prd_id. want compare whether comp, of values among td1, td1 or td3 has been changed. give sample data.

table 1: prd_id   comp   td1   td2   td3           t            y     y     y           t       b      y     n     n table 2: acc_id   comp   td1   td2   td3            s            n     n     y           s       b      y     n     n 

so, between above 2 tables, comp values have been changed. should count or values can use in if condition operation

if data stored in tables, don't need record type. can use minus:

for in (select comp, td1, td2, td3 table1            minus           select comp, td1, td2, td3 table2) loop   -- changed records end loop; 

if there no changes, code in cycle won't execute. code show rows table1, differs rows in table2. if need rows table2, revert sql query:

for in (select comp, td1, td2, td3 table2            minus           select comp, td1, td2, td3 table1) loop   -- changed records end loop; 

if want use explicit cursors:

declare   cursor c1     select comp, td1, td2, td3 table1      minus     select comp, td1, td2, td3 table2;   c1_row c1%rowtype; begin   open c1;   loop     fetch c1 c1_row;     exit when c1%notfound;     --   end loop; end; 

Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -