3846:
3847: begin
3848: -- Bug 1496010: This is the case for checking only.
3849: if (x_primary_key_col_value_new(0) is null) then
3850: curs := dbms_sql.open_cursor;
3851: dbms_sql.parse(curs, selbuf||')', dbms_sql.v7);
3852:
3853: dbms_sql.define_column(curs, 1, l_exists_flag, 1);
3854:
3847: begin
3848: -- Bug 1496010: This is the case for checking only.
3849: if (x_primary_key_col_value_new(0) is null) then
3850: curs := dbms_sql.open_cursor;
3851: dbms_sql.parse(curs, selbuf||')', dbms_sql.v7);
3852:
3853: dbms_sql.define_column(curs, 1, l_exists_flag, 1);
3854:
3855: i := 0;
3849: if (x_primary_key_col_value_new(0) is null) then
3850: curs := dbms_sql.open_cursor;
3851: dbms_sql.parse(curs, selbuf||')', dbms_sql.v7);
3852:
3853: dbms_sql.define_column(curs, 1, l_exists_flag, 1);
3854:
3855: i := 0;
3856: while (i < j) loop
3857: dbms_sql.bind_variable(curs, ':C'||i, x_primary_key_col_value_old(i));
3853: dbms_sql.define_column(curs, 1, l_exists_flag, 1);
3854:
3855: i := 0;
3856: while (i < j) loop
3857: dbms_sql.bind_variable(curs, ':C'||i, x_primary_key_col_value_old(i));
3858: i := i+1;
3859: end loop;
3860: row_processed := dbms_sql.execute_and_fetch(curs);
3861: dbms_sql.column_value(curs,1,l_exists_flag);
3856: while (i < j) loop
3857: dbms_sql.bind_variable(curs, ':C'||i, x_primary_key_col_value_old(i));
3858: i := i+1;
3859: end loop;
3860: row_processed := dbms_sql.execute_and_fetch(curs);
3861: dbms_sql.column_value(curs,1,l_exists_flag);
3862:
3863: -- End Bug 1496010
3864: else
3857: dbms_sql.bind_variable(curs, ':C'||i, x_primary_key_col_value_old(i));
3858: i := i+1;
3859: end loop;
3860: row_processed := dbms_sql.execute_and_fetch(curs);
3861: dbms_sql.column_value(curs,1,l_exists_flag);
3862:
3863: -- End Bug 1496010
3864: else
3865: curs := dbms_sql.open_cursor;
3861: dbms_sql.column_value(curs,1,l_exists_flag);
3862:
3863: -- End Bug 1496010
3864: else
3865: curs := dbms_sql.open_cursor;
3866: dbms_sql.parse(curs, updbuf, dbms_sql.v7);
3867:
3868: i := 0;
3869: while (i < j) loop
3862:
3863: -- End Bug 1496010
3864: else
3865: curs := dbms_sql.open_cursor;
3866: dbms_sql.parse(curs, updbuf, dbms_sql.v7);
3867:
3868: i := 0;
3869: while (i < j) loop
3870: dbms_sql.bind_variable(curs, ':B'||i, x_primary_key_col_value_new(i));
3866: dbms_sql.parse(curs, updbuf, dbms_sql.v7);
3867:
3868: i := 0;
3869: while (i < j) loop
3870: dbms_sql.bind_variable(curs, ':B'||i, x_primary_key_col_value_new(i));
3871: i := i+1;
3872: end loop;
3873: i := 0;
3874: while (i < j) loop
3871: i := i+1;
3872: end loop;
3873: i := 0;
3874: while (i < j) loop
3875: dbms_sql.bind_variable(curs, ':S'||i, x_primary_key_col_value_old(i));
3876: i := i+1;
3877: end loop;
3878: row_processed := dbms_sql.execute(curs);
3879: end if;
3874: while (i < j) loop
3875: dbms_sql.bind_variable(curs, ':S'||i, x_primary_key_col_value_old(i));
3876: i := i+1;
3877: end loop;
3878: row_processed := dbms_sql.execute(curs);
3879: end if;
3880:
3881:
3882: -- Add table name into our global list to prevent infinite loop
3952: checking_log := TRUE;
3953: end; -- end execute updbuf and selbuf;
3954:
3955: -- Close cursor
3956: dbms_sql.close_cursor(curs);
3957:
3958: -- Bug 1496010. If any child contain same value, we can return TRUE
3959: -- and forget about the rest of the loop.
3960: if (x_primary_key_col_value_new(0) is null) then