1 PACKAGE dbms_reputil2 AS
2
3 ------------
4 -- OVERVIEW
5 --
6 -- This package is referenced only by the generated code
7 -- and needs higher purity than the code in dbms_reputil.
8
9 FUNCTION bit(flag IN RAW,
10 byte IN NUMBER,
11 bit_offset IN NUMBER) RETURN BOOLEAN;
12 PRAGMA RESTRICT_REFERENCES(bit, WNPS, RNDS, WNDS);
13 -- Test a bit in a byte in a raw. Byte and bit_offset are 1-based.
14
15 FUNCTION bit(flag IN RAW,
16 bit_offset IN NUMBER) RETURN BOOLEAN;
17 PRAGMA RESTRICT_REFERENCES(bit, WNPS, RNDS, WNDS);
18 -- Test a bit in a raw. Bit_offset is 1-based.
19
20 -- same 2 functions above but returns number for use in SQL
21 -- changed args ordering in order to override. SQL cannot choose between
22 -- return boolean and return number
23 FUNCTION bit(byte IN NUMBER,
24 bit_offset IN NUMBER,
25 flag IN RAW) RETURN NUMBER;
26 PRAGMA RESTRICT_REFERENCES(bit, WNPS, RNDS, WNDS);
27 -- Test a bit in a byte in a raw. Byte and bit_offset are 1-based.
28
29 FUNCTION bit(bit_offset IN NUMBER,
30 flag IN RAW) RETURN NUMBER;
31 PRAGMA RESTRICT_REFERENCES(bit, WNPS, RNDS, WNDS);
32 -- Test a bit in a raw. Bit_offset is 1-based.
33
34 PROCEDURE bis(flag IN OUT RAW,
35 bit_offset IN NUMBER);
36 PRAGMA RESTRICT_REFERENCES(bis, WNPS, RNDS, WNDS);
37 -- Set a bit in a one-byte raw. Bit_offset is 1-based.
38
39 PROCEDURE bic(flag IN OUT RAW,
40 bit_offset IN NUMBER);
41 PRAGMA RESTRICT_REFERENCES(bic, WNPS, RNDS, WNDS);
42 -- Clear a bit in a one-byte raw. Bit_offset is 1-based.
43
44 FUNCTION choose_number(old IN NUMBER,
45 new IN NUMBER,
46 flag IN VARCHAR2,
47 byte IN NUMBER) RETURN NUMBER;
48 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
49 -- else return old.
50 PRAGMA RESTRICT_REFERENCES(choose_number, WNPS, RNDS, WNDS);
51
52 FUNCTION choose_date(old IN DATE,
53 new IN DATE,
54 flag IN VARCHAR2,
55 byte IN NUMBER) RETURN DATE;
56 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
57 -- else return old.
58 PRAGMA RESTRICT_REFERENCES(choose_date, WNPS, RNDS, WNDS);
59
60 FUNCTION choose_varchar2(old IN VARCHAR2,
61 new IN VARCHAR2,
62 flag IN VARCHAR2,
63 byte IN NUMBER) RETURN VARCHAR2;
64 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
65 -- else return old.
66 PRAGMA RESTRICT_REFERENCES(choose_varchar2, WNPS, RNDS, WNDS);
67
68 FUNCTION choose_nvarchar2(old IN NVARCHAR2,
69 new IN NVARCHAR2,
70 flag IN VARCHAR2,
71 byte IN NUMBER) RETURN NVARCHAR2;
72 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
73 -- else return old.
74 PRAGMA RESTRICT_REFERENCES(choose_nvarchar2, WNPS, RNDS, WNDS);
75
76 FUNCTION choose_char(old IN CHAR,
77 new IN CHAR,
78 flag IN VARCHAR2,
79 byte IN NUMBER) RETURN CHAR;
80 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
81 -- else return old.
82 PRAGMA RESTRICT_REFERENCES(choose_char, WNPS, RNDS, WNDS);
83
84 FUNCTION choose_nchar(old IN NCHAR,
85 new IN NCHAR,
86 flag IN VARCHAR2,
87 byte IN NUMBER) RETURN NCHAR;
88 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
89 -- else return old.
90 PRAGMA RESTRICT_REFERENCES(choose_nchar, WNPS, RNDS, WNDS);
91
92 FUNCTION choose_rowid(old IN ROWID,
93 new IN ROWID,
94 flag IN VARCHAR2,
95 byte IN NUMBER) RETURN ROWID;
96 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
97 -- else return old.
98 PRAGMA RESTRICT_REFERENCES(choose_rowid, WNPS, RNDS, WNDS);
99
100 FUNCTION choose_raw(old IN RAW,
101 new IN RAW,
102 flag IN VARCHAR2,
103 byte IN NUMBER) RETURN RAW;
104 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
105 -- else return old.
106 PRAGMA RESTRICT_REFERENCES(choose_raw, WNPS, RNDS, WNDS);
107
108 FUNCTION choose_blob(old IN BLOB,
109 new IN BLOB,
110 flag IN VARCHAR2,
111 byte IN NUMBER) RETURN BLOB;
112 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
113 -- else return old.
114 PRAGMA RESTRICT_REFERENCES(choose_blob, RNPS, WNPS, RNDS, WNDS);
115
116 FUNCTION choose_clob(old IN CLOB,
117 new IN CLOB,
118 flag IN VARCHAR2,
119 byte IN NUMBER) RETURN CLOB;
120 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
121 -- else return old.
122 PRAGMA RESTRICT_REFERENCES(choose_clob, RNPS, WNPS, RNDS, WNDS);
123
124 FUNCTION choose_nclob(old IN NCLOB,
125 new IN NCLOB,
126 flag IN VARCHAR2,
127 byte IN NUMBER) RETURN NCLOB;
128 -- If flag is null or substr(flag,byte,1) = 'Y' then return new
129 -- else return old.
130 PRAGMA RESTRICT_REFERENCES(choose_nclob, RNPS, WNPS, RNDS, WNDS);
131
132 FUNCTION old_varchar2_equals_new(column_changed$_varchar2 IN VARCHAR2,
133 offset IN NUMBER,
134 old IN VARCHAR2
135 CHARACTER SET
136 ANY_CS,
137 new IN VARCHAR2
138 CHARACTER SET
139 old%CHARSET)
140 RETURN VARCHAR2;
141 -- If old and new are identical then return 'Y' else return 'N.'
142 -- Use column_changed$_varchar2 if not null.
143 -- Otherwise use equality and null checks.
144 PRAGMA RESTRICT_REFERENCES(old_varchar2_equals_new, RNPS, WNPS, RNDS, WNDS);
145
146 FUNCTION old_char_equals_new(column_changed$_varchar2 IN VARCHAR2,
147 offset IN NUMBER,
148 old IN CHAR CHARACTER SET
149 ANY_CS,
150 new IN CHAR CHARACTER SET
151 old%CHARSET)
152 RETURN VARCHAR2;
153 -- If old and new are identical then return 'Y' else return 'N.'
154 -- Use column_changed$_varchar2 if not null.
155 -- Otherwise use equality and null checks.
156 PRAGMA RESTRICT_REFERENCES(old_char_equals_new, RNPS, WNPS, RNDS, WNDS);
157
158 FUNCTION old_rowid_equals_new(column_changed$_varchar2 IN VARCHAR2,
159 offset IN NUMBER,
160 old IN ROWID,
161 new IN ROWID)
162 RETURN VARCHAR2;
163 -- If old and new are identical then return 'Y' else return 'N.'
164 -- Use column_changed$_varchar2 if not null.
165 -- Otherwise use equality and null checks.
166 PRAGMA RESTRICT_REFERENCES(old_rowid_equals_new, RNPS, WNPS, RNDS, WNDS);
167
168 FUNCTION old_date_equals_new(column_changed$_varchar2 IN VARCHAR2,
169 offset IN NUMBER,
170 old IN DATE,
171 new IN DATE)
172 RETURN VARCHAR2;
173 -- If old and new are identical then return 'Y' else return 'N.'
174 -- Use column_changed$_varchar2 if not null.
175 -- Otherwise use equality and null checks.
176 PRAGMA RESTRICT_REFERENCES(old_date_equals_new, RNPS, WNPS, RNDS, WNDS);
177
178 FUNCTION old_raw_equals_new(column_changed$_varchar2 IN VARCHAR2,
179 offset IN NUMBER,
180 old IN RAW,
181 new IN RAW)
182 RETURN VARCHAR2;
183 -- If old and new are identical then return 'Y' else return 'N.'
184 -- Use column_changed$_varchar2 if not null.
185 -- Otherwise use equality and null checks.
186 PRAGMA RESTRICT_REFERENCES(old_raw_equals_new, RNPS, WNPS, RNDS, WNDS);
187
188 FUNCTION old_number_equals_new(column_changed$_varchar2 IN VARCHAR2,
189 offset IN NUMBER,
190 old IN NUMBER,
191 new IN NUMBER)
192 RETURN VARCHAR2;
193 -- If old and new are identical then return 'Y' else return 'N.'
194 -- Use column_changed$_varchar2 if not null.
195 -- Otherwise use equality and null checks.
196 PRAGMA RESTRICT_REFERENCES(old_number_equals_new, RNPS, WNPS, RNDS, WNDS);
197
198 FUNCTION old_clob_equals_new(column_changed$_varchar2 IN VARCHAR2,
199 offset IN NUMBER,
200 old IN CLOB CHARACTER SET
201 ANY_CS,
202 new IN CLOB CHARACTER SET
203 old%CHARSET)
204 RETURN VARCHAR2;
205 -- If old and new are identical then return 'Y' else return 'N.'
206 -- Use column_changed$_varchar2 if not null.
207 -- Otherwise use equality and null checks.
208 PRAGMA RESTRICT_REFERENCES(old_clob_equals_new, RNPS, WNPS, RNDS, WNDS);
209
210 FUNCTION old_blob_equals_new(column_changed$_varchar2 IN VARCHAR2,
211 offset IN NUMBER,
212 old IN BLOB,
213 new IN BLOB)
214 RETURN VARCHAR2;
215 -- If old and new are identical then return 'Y' else return 'N.'
216 -- Use column_changed$_varchar2 if not null.
217 -- Otherwise use equality and null checks.
218 PRAGMA RESTRICT_REFERENCES(old_blob_equals_new, RNPS, WNPS, RNDS, WNDS);
219
220 FUNCTION old_varchar2_eq_new(column_changed$_varchar2 IN VARCHAR2,
221 offset IN NUMBER,
222 old IN VARCHAR2
223 CHARACTER SET
224 ANY_CS,
225 new IN VARCHAR2
226 CHARACTER SET
227 old%CHARSET)
228 RETURN BOOLEAN;
229 -- If old and new are identical then return true else return false.
230 -- Use column_changed$_varchar2 if not null.
231 -- Otherwise use equality and null checks.
232 PRAGMA RESTRICT_REFERENCES(old_varchar2_eq_new, RNPS, WNPS, RNDS, WNDS);
233
234 FUNCTION old_char_eq_new(column_changed$_varchar2 IN VARCHAR2,
235 offset IN NUMBER,
236 old IN CHAR CHARACTER SET
237 ANY_CS,
238 new IN CHAR CHARACTER SET
239 old%CHARSET)
240 RETURN BOOLEAN;
241 -- If old and new are identical then return true else return false.
242 -- Use column_changed$_varchar2 if not null.
243 -- Otherwise use equality and null checks.
244 PRAGMA RESTRICT_REFERENCES(old_char_eq_new, RNPS, WNPS, RNDS, WNDS);
245
246 FUNCTION old_date_eq_new(column_changed$_varchar2 IN VARCHAR2,
247 offset IN NUMBER,
248 old IN DATE,
249 new IN DATE)
250 RETURN BOOLEAN;
251 -- If old and new are identical then return true else return false.
252 -- Use column_changed$_varchar2 if not null.
253 -- Otherwise use equality and null checks.
254 PRAGMA RESTRICT_REFERENCES(old_date_eq_new, RNPS, WNPS, RNDS, WNDS);
255
256 FUNCTION old_rowid_eq_new(column_changed$_varchar2 IN VARCHAR2,
257 offset IN NUMBER,
258 old IN ROWID,
259 new IN ROWID)
260 RETURN BOOLEAN;
261 -- If old and new are identical then return true else return false.
262 -- Use column_changed$_varchar2 if not null.
263 -- Otherwise use equality and null checks.
264 PRAGMA RESTRICT_REFERENCES(old_rowid_eq_new, RNPS, WNPS, RNDS, WNDS);
265
266 FUNCTION old_raw_eq_new(column_changed$_varchar2 IN VARCHAR2,
267 offset IN NUMBER,
268 old IN RAW,
269 new IN RAW)
270 RETURN BOOLEAN;
271 -- If old and new are identical then return true else return false.
272 -- Use column_changed$_varchar2 if not null.
273 -- Otherwise use equality and null checks.
274 PRAGMA RESTRICT_REFERENCES(old_raw_eq_new, RNPS, WNPS, RNDS, WNDS);
275
276 FUNCTION old_number_eq_new(column_changed$_varchar2 IN VARCHAR2,
277 offset IN NUMBER,
278 old IN NUMBER,
279 new IN NUMBER)
280 RETURN BOOLEAN;
281 -- If old and new are identical then return true else return false.
282 -- Use column_changed$_varchar2 if not null.
283 -- Otherwise use equality and null checks.
284 PRAGMA RESTRICT_REFERENCES(old_number_eq_new, RNPS, WNPS, RNDS, WNDS);
285
286 FUNCTION old_clob_eq_new(column_changed$_varchar2 IN VARCHAR2,
287 offset IN NUMBER,
288 old IN CLOB CHARACTER SET
289 ANY_CS,
290 new IN CLOB CHARACTER SET
291 old%CHARSET)
292 RETURN BOOLEAN;
293 -- If old and new are identical then return true else return false.
294 -- Use column_changed$_varchar2 if not null.
295 -- Otherwise use equality and null checks.
296 PRAGMA RESTRICT_REFERENCES(old_clob_eq_new, RNPS, WNPS, RNDS, WNDS);
297
298 FUNCTION old_blob_eq_new(column_changed$_varchar2 IN VARCHAR2,
299 offset IN NUMBER,
300 old IN BLOB,
301 new IN BLOB)
302 RETURN BOOLEAN;
303 -- If old and new are identical then return true else return false.
304 -- Use column_changed$_varchar2 if not null.
305 -- Otherwise use equality and null checks.
306 PRAGMA RESTRICT_REFERENCES(old_blob_eq_new, RNPS, WNPS, RNDS, WNDS);
307
308 FUNCTION old_varchar2_equals_current(column_sent$_varchar2 IN VARCHAR2,
309 offset IN NUMBER,
310 old IN VARCHAR2
311 CHARACTER SET
312 ANY_CS,
313 current IN VARCHAR2
314 CHARACTER SET
315 old%CHARSET)
316 RETURN VARCHAR2;
317 -- If column_sent$_varchar2 is NULL, return 'Y.'
318 -- If old and current are identical then return 'Y' else return 'N.'
319 -- Use equality and null checks.
320 PRAGMA RESTRICT_REFERENCES(old_varchar2_equals_current,
321 RNPS, WNPS, RNDS, WNDS);
322
323 FUNCTION old_char_equals_current(column_sent$_varchar2 IN VARCHAR2,
324 offset IN NUMBER,
325 old IN CHAR CHARACTER SET
326 ANY_CS,
327 current IN CHAR CHARACTER SET
328 old%CHARSET)
329 RETURN VARCHAR2;
330 -- If column_sent$_varchar2 is NULL, return 'Y.'
334 RNPS, WNPS, RNDS, WNDS);
331 -- If old and current are identical then return 'Y' else return 'N.'
332 -- Use equality and null checks.
333 PRAGMA RESTRICT_REFERENCES(old_char_equals_current,
335
336 FUNCTION old_raw_equals_current(column_sent$_varchar2 IN VARCHAR2,
337 offset IN NUMBER,
338 old IN RAW,
339 current IN RAW)
340 RETURN VARCHAR2;
341 -- If column_sent$_varchar2 is NULL, return 'Y.'
342 -- If old and current are identical then return 'Y' else return 'N.'
343 -- Use equality and null checks.
344 PRAGMA RESTRICT_REFERENCES(old_raw_equals_current,
345 RNPS, WNPS, RNDS, WNDS);
346
347 FUNCTION old_rowid_equals_current(column_sent$_varchar2 IN VARCHAR2,
348 offset IN NUMBER,
349 old IN ROWID,
350 current IN ROWID)
351 RETURN VARCHAR2;
352 -- If column_sent$_varchar2 is NULL, return 'Y.'
353 -- If old and current are identical then return 'Y' else return 'N.'
354 -- Use equality and null checks.
355 PRAGMA RESTRICT_REFERENCES(old_rowid_equals_current,
356 RNPS, WNPS, RNDS, WNDS);
357
358 FUNCTION old_date_equals_current(column_sent$_varchar2 IN VARCHAR2,
359 offset IN NUMBER,
360 old IN DATE,
361 current IN DATE)
362 RETURN VARCHAR2;
363 -- If column_sent$_varchar2 is NULL, return 'Y.'
364 -- If old and current are identical then return 'Y' else return 'N.'
365 -- Use equality and null checks.
366 PRAGMA RESTRICT_REFERENCES(old_date_equals_current,
367 RNPS, WNPS, RNDS, WNDS);
368
369 FUNCTION old_number_equals_current(column_sent$_varchar2 IN VARCHAR2,
370 offset IN NUMBER,
371 old IN NUMBER,
372 current IN NUMBER)
373 RETURN VARCHAR2;
374 -- If column_sent$_varchar2 is NULL, return 'Y.'
375 -- If old and current are identical then return 'Y' else return 'N.'
376 -- Use equality and null checks.
377 PRAGMA RESTRICT_REFERENCES(old_number_equals_current,
378 RNPS, WNPS, RNDS, WNDS);
379
380 FUNCTION old_blob_equals_current(column_sent$_varchar2 IN VARCHAR2,
381 offset IN NUMBER,
382 old IN BLOB,
383 current IN BLOB)
384 RETURN VARCHAR2;
385 -- If column_sent$_varchar2 is NULL, return 'Y.'
386 -- If old and current are identical then return 'Y' else return 'N.'
387 -- Use equality and null checks.
388 PRAGMA RESTRICT_REFERENCES(old_blob_equals_current,
389 RNPS, WNPS, RNDS, WNDS);
390
391 FUNCTION old_clob_equals_current(column_sent$_varchar2 IN VARCHAR2,
392 offset IN NUMBER,
393 old IN CLOB CHARACTER SET
394 ANY_CS,
395 current IN CLOB CHARACTER SET
396 old%CHARSET)
397 RETURN VARCHAR2;
398 -- If column_sent$_varchar2 is NULL, return 'Y.'
399 -- If old and current are identical then return 'Y' else return 'N.'
400 -- Use equality and null checks.
401 PRAGMA RESTRICT_REFERENCES(old_clob_equals_current,
402 RNPS, WNPS, RNDS, WNDS);
403
404 FUNCTION old_varchar2_eq_current(column_sent$_varchar2 IN VARCHAR2,
405 offset IN NUMBER,
406 old IN VARCHAR2
407 CHARACTER SET
408 ANY_CS,
409 current IN VARCHAR2
410 CHARACTER SET
411 old%CHARSET)
412 RETURN BOOLEAN;
413 -- If column_sent$_varchar2 is NULL, return 'Y.'
414 -- If old and current are identical then return 'Y' else return 'N.'
415 -- Use equality and null checks.
416 PRAGMA RESTRICT_REFERENCES(old_varchar2_eq_current,
417 RNPS, WNPS, RNDS, WNDS);
418
419 FUNCTION old_char_eq_current(column_sent$_varchar2 IN VARCHAR2,
420 offset IN NUMBER,
421 old IN CHAR CHARACTER SET
422 ANY_CS,
423 current IN CHAR CHARACTER SET
424 old%CHARSET)
425 RETURN BOOLEAN;
426 -- If column_sent$_varchar2 is NULL, return 'Y.'
427 -- If old and current are identical then return 'Y' else return 'N.'
428 -- Use equality and null checks.
429 PRAGMA RESTRICT_REFERENCES(old_char_eq_current,
430 RNPS, WNPS, RNDS, WNDS);
431
432 FUNCTION old_raw_eq_current(column_sent$_varchar2 IN VARCHAR2,
433 offset IN NUMBER,
437 -- If column_sent$_varchar2 is NULL, return 'Y.'
434 old IN RAW,
435 current IN RAW)
436 RETURN BOOLEAN;
438 -- If old and current are identical then return 'Y' else return 'N.'
439 -- Use equality and null checks.
440 PRAGMA RESTRICT_REFERENCES(old_raw_eq_current,
441 RNPS, WNPS, RNDS, WNDS);
442
443 FUNCTION old_rowid_eq_current(column_sent$_varchar2 IN VARCHAR2,
444 offset IN NUMBER,
445 old IN ROWID,
446 current IN ROWID)
447 RETURN BOOLEAN;
448 -- If column_sent$_varchar2 is NULL, return 'Y.'
449 -- If old and current are identical then return 'Y' else return 'N.'
450 -- Use equality and null checks.
451 PRAGMA RESTRICT_REFERENCES(old_rowid_eq_current,
452 RNPS, WNPS, RNDS, WNDS);
453
454 FUNCTION old_date_eq_current(column_sent$_varchar2 IN VARCHAR2,
455 offset IN NUMBER,
456 old IN DATE,
457 current IN DATE)
458 RETURN BOOLEAN;
459 -- If column_sent$_varchar2 is NULL, return 'Y.'
460 -- If old and current are identical then return 'Y' else return 'N.'
461 -- Use equality and null checks.
462 PRAGMA RESTRICT_REFERENCES(old_date_eq_current,
463 RNPS, WNPS, RNDS, WNDS);
464
465 FUNCTION old_number_eq_current(column_sent$_varchar2 IN VARCHAR2,
466 offset IN NUMBER,
467 old IN NUMBER,
468 current IN NUMBER)
469 RETURN BOOLEAN;
470 -- If column_sent$_varchar2 is NULL, return 'Y.'
471 -- If old and current are identical then return 'Y' else return 'N.'
472 -- Use equality and null checks.
473 PRAGMA RESTRICT_REFERENCES(old_number_eq_current,
474 RNPS, WNPS, RNDS, WNDS);
475
476 FUNCTION old_clob_eq_current(column_sent$_varchar2 IN VARCHAR2,
477 offset IN NUMBER,
478 old IN CLOB CHARACTER SET
479 ANY_CS,
480 current IN CLOB CHARACTER SET
481 old%CHARSET)
482 RETURN BOOLEAN;
483 -- If column_sent$_varchar2 is NULL, return 'Y.'
484 -- If old and current are identical then return 'Y' else return 'N.'
485 -- Use equality and null checks.
486 PRAGMA RESTRICT_REFERENCES(old_clob_eq_current,
487 RNPS, WNPS, RNDS, WNDS);
488
489 FUNCTION old_blob_eq_current(column_sent$_varchar2 IN VARCHAR2,
490 offset IN NUMBER,
491 old IN BLOB,
492 current IN BLOB)
493 RETURN BOOLEAN;
494 -- If column_sent$_varchar2 is NULL, return 'Y.'
495 -- If old and current are identical then return 'Y' else return 'N.'
496 -- Use equality and null checks.
497 PRAGMA RESTRICT_REFERENCES(old_blob_eq_current,
498 RNPS, WNPS, RNDS, WNDS);
499
500 FUNCTION get_final_varchar2(column_changed$_varchar2 IN VARCHAR2,
501 offset IN NUMBER,
502 current IN VARCHAR2 CHARACTER
503 SET ANY_CS,
504 old IN VARCHAR2
505 CHARACTER SET
506 "CURRENT"%CHARSET,
507 new IN VARCHAR2
508 CHARACTER SET
509 "CURRENT"%CHARSET)
510 RETURN VARCHAR2 CHARACTER SET "CURRENT"%CHARSET;
511 -- If old and new are identical, then return current else return new.
512 -- Use column_changed$_varchar2 if non-null.
513 PRAGMA RESTRICT_REFERENCES(get_final_varchar2, RNPS, WNPS, RNDS, WNDS);
514
515 FUNCTION get_final_char(column_changed$_varchar2 IN VARCHAR2,
516 offset IN NUMBER,
517 current IN CHAR CHARACTER SET
518 ANY_CS,
519 old IN CHAR CHARACTER SET
520 "CURRENT"%CHARSET,
521 new IN CHAR CHARACTER SET
522 "CURRENT"%CHARSET)
523 RETURN CHAR CHARACTER SET "CURRENT"%CHARSET;
524 -- If old and new are identical, then return current else return new.
525 -- Use column_changed$_varchar2 if non-null.
526 PRAGMA RESTRICT_REFERENCES(get_final_char, RNPS, WNPS, RNDS, WNDS);
527
528 FUNCTION get_final_rowid(column_changed$_varchar2 IN VARCHAR2,
529 offset IN NUMBER,
530 current IN ROWID,
531 old IN ROWID,
532 new IN ROWID)
533 RETURN ROWID;
534 -- If old and new are identical, then return current else return new.
535 -- Use column_changed$_varchar2 if non-null.
539 offset IN NUMBER,
536 PRAGMA RESTRICT_REFERENCES(get_final_rowid, RNPS, WNPS, RNDS, WNDS);
537
538 FUNCTION get_final_date(column_changed$_varchar2 IN VARCHAR2,
540 current IN DATE,
541 old IN DATE,
542 new IN DATE)
543 RETURN DATE;
544 -- If old and new are identical, then return current else return new.
545 -- Use column_changed$_varchar2 if non-null.
546 PRAGMA RESTRICT_REFERENCES(get_final_date, RNPS, WNPS, RNDS, WNDS);
547
548 FUNCTION get_final_raw(column_changed$_varchar2 IN VARCHAR2,
549 offset IN NUMBER,
550 current IN RAW,
551 old IN RAW,
552 new IN RAW)
553 RETURN RAW;
554 -- If old and new are identical, then return current else return new.
555 -- Use column_changed$_varchar2 if non-null.
556 PRAGMA RESTRICT_REFERENCES(get_final_raw, RNPS, WNPS, RNDS, WNDS);
557
558 FUNCTION get_final_number(column_changed$_varchar2 IN VARCHAR2,
559 offset IN NUMBER,
560 current IN NUMBER,
561 old IN NUMBER,
562 new IN NUMBER)
563 RETURN NUMBER;
564 -- If old and new are identical, then return current else return new.
565 -- Use column_changed$_varchar2 if non-null.
566 PRAGMA RESTRICT_REFERENCES(get_final_number, RNPS, WNPS, RNDS, WNDS);
567
568 FUNCTION get_final_lob(column_changed$_char IN CHAR,
569 current IN CLOB CHARACTER SET
570 ANY_CS,
571 new IN CLOB CHARACTER SET
572 "CURRENT"%CHARSET)
573 RETURN CLOB CHARACTER SET "CURRENT"%CHARSET;
574 -- column_changed$_char is non NULL
575 -- returns new if and only if column_changed$_char is 'Y'
576 PRAGMA RESTRICT_REFERENCES(get_final_lob, RNPS, WNPS, RNDS, WNDS);
577
578 FUNCTION get_final_lob(column_changed$_char IN CHAR,
579 current IN BLOB,
580 new IN BLOB)
581 RETURN BLOB;
582 -- column_changed$_char is non NULL
583 -- returns new if and only if column_changed$_char is 'Y'
584 PRAGMA RESTRICT_REFERENCES(get_final_lob, RNPS, WNPS, RNDS, WNDS);
585
586 FUNCTION get_final_clob(column_changed$_varchar2 IN VARCHAR2,
587 offset IN NUMBER,
588 current IN CLOB CHARACTER SET
589 ANY_CS,
590 old IN CLOB CHARACTER SET
591 "CURRENT"%CHARSET,
592 new IN CLOB CHARACTER SET
593 "CURRENT"%CHARSET)
594 RETURN CLOB CHARACTER SET "CURRENT"%CHARSET;
595 -- If old and new are identical, then return current else return new.
596 -- Use column_changed$_varchar2 if non-null.
597 PRAGMA RESTRICT_REFERENCES(get_final_clob, RNPS, WNPS, RNDS, WNDS);
598
599 FUNCTION get_final_blob(column_changed$_varchar2 IN VARCHAR2,
600 offset IN NUMBER,
601 current IN BLOB,
602 old IN BLOB,
603 new IN BLOB)
604 RETURN BLOB;
605 -- If old and new are identical, then return current else return new.
606 -- Use column_changed$_varchar2 if non-null.
607 PRAGMA RESTRICT_REFERENCES(get_final_blob, RNPS, WNPS, RNDS, WNDS);
608
609 END dbms_reputil2;