34: l_variable number;
35: l_status number;
36: l_column_name varchar2(255);
37: begin
38: l_cursor := dbms_sql.open_cursor;
39: -- Fix 789868 - Common schema may not have access to this info.
40: sys.dbms_sys_sql.parse_as_user(
41: l_cursor,
42: 'select column_name
42: 'select column_name
43: from all_tab_columns
44: where owner = upper(:p_owner)
45: and table_name = upper(:p_tname)
46: order by column_id', dbms_sql.native);
47: dbms_sql.bind_variable(l_cursor, ':p_owner', p_owner);
48: dbms_sql.bind_variable(l_cursor, ':p_tname', p_tname);
49: dbms_sql.define_column(l_cursor, 1, l_column_name, 255);
50:
43: from all_tab_columns
44: where owner = upper(:p_owner)
45: and table_name = upper(:p_tname)
46: order by column_id', dbms_sql.native);
47: dbms_sql.bind_variable(l_cursor, ':p_owner', p_owner);
48: dbms_sql.bind_variable(l_cursor, ':p_tname', p_tname);
49: dbms_sql.define_column(l_cursor, 1, l_column_name, 255);
50:
51: l_status := dbms_sql.execute(l_cursor);
44: where owner = upper(:p_owner)
45: and table_name = upper(:p_tname)
46: order by column_id', dbms_sql.native);
47: dbms_sql.bind_variable(l_cursor, ':p_owner', p_owner);
48: dbms_sql.bind_variable(l_cursor, ':p_tname', p_tname);
49: dbms_sql.define_column(l_cursor, 1, l_column_name, 255);
50:
51: l_status := dbms_sql.execute(l_cursor);
52: loop
45: and table_name = upper(:p_tname)
46: order by column_id', dbms_sql.native);
47: dbms_sql.bind_variable(l_cursor, ':p_owner', p_owner);
48: dbms_sql.bind_variable(l_cursor, ':p_tname', p_tname);
49: dbms_sql.define_column(l_cursor, 1, l_column_name, 255);
50:
51: l_status := dbms_sql.execute(l_cursor);
52: loop
53: l_status := dbms_sql.fetch_rows(l_cursor);
47: dbms_sql.bind_variable(l_cursor, ':p_owner', p_owner);
48: dbms_sql.bind_variable(l_cursor, ':p_tname', p_tname);
49: dbms_sql.define_column(l_cursor, 1, l_column_name, 255);
50:
51: l_status := dbms_sql.execute(l_cursor);
52: loop
53: l_status := dbms_sql.fetch_rows(l_cursor);
54: if (l_status <= 0) then
55: exit;
49: dbms_sql.define_column(l_cursor, 1, l_column_name, 255);
50:
51: l_status := dbms_sql.execute(l_cursor);
52: loop
53: l_status := dbms_sql.fetch_rows(l_cursor);
54: if (l_status <= 0) then
55: exit;
56: end if;
57: dbms_sql.column_value(l_cursor, 1, l_column_name);
53: l_status := dbms_sql.fetch_rows(l_cursor);
54: if (l_status <= 0) then
55: exit;
56: end if;
57: dbms_sql.column_value(l_cursor, 1, l_column_name);
58: if (l_theQuery is NULL) then
59: l_theQuery := 'select owa_opt_lock.checksum(';
60: else
61: l_theQuery := l_theQuery || '||';
61: l_theQuery := l_theQuery || '||';
62: end if;
63: l_theQuery := l_theQuery || l_column_name;
64: end loop;
65: dbms_sql.close_cursor(l_cursor);
66:
67: l_theQuery := l_theQuery
68: || ') from ' || p_owner || '.' || p_tname ||
69: ' where rowid = :x1 for update';
67: l_theQuery := l_theQuery
68: || ') from ' || p_owner || '.' || p_tname ||
69: ' where rowid = :x1 for update';
70:
71: l_cursor := dbms_sql.open_cursor;
72: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7);
73: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
68: || ') from ' || p_owner || '.' || p_tname ||
69: ' where rowid = :x1 for update';
70:
71: l_cursor := dbms_sql.open_cursor;
72: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7);
73: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
76: l_status := dbms_sql.execute(l_cursor);
69: ' where rowid = :x1 for update';
70:
71: l_cursor := dbms_sql.open_cursor;
72: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7);
73: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
76: l_status := dbms_sql.execute(l_cursor);
77: l_status := dbms_sql.fetch_rows(l_cursor);
70:
71: l_cursor := dbms_sql.open_cursor;
72: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7);
73: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
76: l_status := dbms_sql.execute(l_cursor);
77: l_status := dbms_sql.fetch_rows(l_cursor);
78: dbms_sql.column_value( l_cursor, 1, l_variable );
72: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7);
73: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
76: l_status := dbms_sql.execute(l_cursor);
77: l_status := dbms_sql.fetch_rows(l_cursor);
78: dbms_sql.column_value( l_cursor, 1, l_variable );
79: dbms_sql.close_cursor( l_cursor );
80:
73: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
76: l_status := dbms_sql.execute(l_cursor);
77: l_status := dbms_sql.fetch_rows(l_cursor);
78: dbms_sql.column_value( l_cursor, 1, l_variable );
79: dbms_sql.close_cursor( l_cursor );
80:
81: return l_variable;
74: dbms_sql.define_column( l_cursor, 1, l_variable );
75:
76: l_status := dbms_sql.execute(l_cursor);
77: l_status := dbms_sql.fetch_rows(l_cursor);
78: dbms_sql.column_value( l_cursor, 1, l_variable );
79: dbms_sql.close_cursor( l_cursor );
80:
81: return l_variable;
82: end;
75:
76: l_status := dbms_sql.execute(l_cursor);
77: l_status := dbms_sql.fetch_rows(l_cursor);
78: dbms_sql.column_value( l_cursor, 1, l_variable );
79: dbms_sql.close_cursor( l_cursor );
80:
81: return l_variable;
82: end;
83:
96: l_variable varchar2(2000);
97: l_status number;
98: l_col_cnt number default 0;
99: begin
100: l_cursor := dbms_sql.open_cursor;
101:
102: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
103: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
104: for i in 1 .. 255 loop
98: l_col_cnt number default 0;
99: begin
100: l_cursor := dbms_sql.open_cursor;
101:
102: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
103: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
104: for i in 1 .. 255 loop
105: begin
106: dbms_sql.define_column( l_cursor, i, l_variable, 2000 );
99: begin
100: l_cursor := dbms_sql.open_cursor;
101:
102: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
103: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
104: for i in 1 .. 255 loop
105: begin
106: dbms_sql.define_column( l_cursor, i, l_variable, 2000 );
107: l_col_cnt := l_col_cnt + 1;
102: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
103: dbms_sql.bind_variable( l_cursor, ':x1', p_rowid );
104: for i in 1 .. 255 loop
105: begin
106: dbms_sql.define_column( l_cursor, i, l_variable, 2000 );
107: l_col_cnt := l_col_cnt + 1;
108: exception
109: when last_column then exit;
110: end;
109: when last_column then exit;
110: end;
111: end loop;
112:
113: l_status := dbms_sql.execute(l_cursor);
114: l_status := dbms_sql.fetch_rows(l_cursor);
115:
116: htp.formHidden( 'old_' || p_tname, htf.escape_sc(p_owner) );
117: htp.formHidden( 'old_' || p_tname, htf.escape_sc(p_tname) );
110: end;
111: end loop;
112:
113: l_status := dbms_sql.execute(l_cursor);
114: l_status := dbms_sql.fetch_rows(l_cursor);
115:
116: htp.formHidden( 'old_' || p_tname, htf.escape_sc(p_owner) );
117: htp.formHidden( 'old_' || p_tname, htf.escape_sc(p_tname) );
118: for i in 1 .. l_col_cnt loop
115:
116: htp.formHidden( 'old_' || p_tname, htf.escape_sc(p_owner) );
117: htp.formHidden( 'old_' || p_tname, htf.escape_sc(p_tname) );
118: for i in 1 .. l_col_cnt loop
119: dbms_sql.column_value( l_cursor, i, l_variable );
120: htp.formHidden( 'old_'||p_tname, htf.escape_sc(l_variable) );
121: end loop;
122:
123: dbms_sql.close_cursor( l_cursor );
119: dbms_sql.column_value( l_cursor, i, l_variable );
120: htp.formHidden( 'old_'||p_tname, htf.escape_sc(l_variable) );
121: end loop;
122:
123: dbms_sql.close_cursor( l_cursor );
124: end;
125:
126: /******************************************************************/
127: /* Function to verify stored values */
138: l_status number;
139: l_col_cnt number default 0;
140: l_return_val boolean default TRUE;
141: begin
142: l_cursor := dbms_sql.open_cursor;
143:
144: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
145: dbms_sql.bind_variable( l_cursor, ':x1', p_old_values(3) );
146: for i in 1 .. 255 loop
140: l_return_val boolean default TRUE;
141: begin
142: l_cursor := dbms_sql.open_cursor;
143:
144: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
145: dbms_sql.bind_variable( l_cursor, ':x1', p_old_values(3) );
146: for i in 1 .. 255 loop
147: begin
148: dbms_sql.define_column( l_cursor, i, l_variable, 2000 );
141: begin
142: l_cursor := dbms_sql.open_cursor;
143:
144: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
145: dbms_sql.bind_variable( l_cursor, ':x1', p_old_values(3) );
146: for i in 1 .. 255 loop
147: begin
148: dbms_sql.define_column( l_cursor, i, l_variable, 2000 );
149: l_col_cnt := l_col_cnt + 1;
144: sys.dbms_sys_sql.parse_as_user( l_cursor, l_theQuery, dbms_sql.v7 );
145: dbms_sql.bind_variable( l_cursor, ':x1', p_old_values(3) );
146: for i in 1 .. 255 loop
147: begin
148: dbms_sql.define_column( l_cursor, i, l_variable, 2000 );
149: l_col_cnt := l_col_cnt + 1;
150: exception
151: when last_column then exit;
152: end;
151: when last_column then exit;
152: end;
153: end loop;
154:
155: l_status := dbms_sql.execute(l_cursor);
156: l_status := dbms_sql.fetch_rows(l_cursor);
157:
158: for i in 1 .. l_col_cnt loop
159: dbms_sql.column_value( l_cursor, i, l_variable );
152: end;
153: end loop;
154:
155: l_status := dbms_sql.execute(l_cursor);
156: l_status := dbms_sql.fetch_rows(l_cursor);
157:
158: for i in 1 .. l_col_cnt loop
159: dbms_sql.column_value( l_cursor, i, l_variable );
160: if ( l_variable <> p_old_values(i+3) AND
155: l_status := dbms_sql.execute(l_cursor);
156: l_status := dbms_sql.fetch_rows(l_cursor);
157:
158: for i in 1 .. l_col_cnt loop
159: dbms_sql.column_value( l_cursor, i, l_variable );
160: if ( l_variable <> p_old_values(i+3) AND
161: l_variable is not null AND
162: p_old_values(i+3) is not null ) then
163: l_return_val := FALSE;
164: exit;
165: end if;
166: end loop;
167:
168: dbms_sql.close_cursor( l_cursor );
169: return l_return_val;
170: end;
171:
172: /******************************************************************/