[Home] [Help]
PACKAGE BODY: APPS.BSC_PMD_OPT_DOC_UTIL
Source
1 PACKAGE BODY BSC_PMD_OPT_DOC_UTIL AS
2 /* $Header: BSCPDGB.pls 120.6 2006/04/18 15:43:12 calaw noship $ */
3
4 G_BSC_SCHEMA VARCHAR2(100) := BSC_APPS.get_user_schema('BSC');
5 G_APPS_SCHEMA VARCHAR2(100) := BSC_APPS.get_user_schema('APPS');
6
7 G_REL_DISPLAY_TABLE VARCHAR2(100):= 'BSC_DB_TABLES_RELS_DISPLAY';
8 G_MASTER_DISPLAY_TABLE VARCHAR2(100):= 'BSC_DB_TABLES_DISPLAY';
9 G_T_COLLAPSE_TEMP VARCHAR2(100):= G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP';
10
11 TYPE table_mv_pair IS record(table_name varchar2(30), mv_name varchar2(30), mv_type varchar2(10));
12 TYPE table_mv_pair_tab IS TABLE OF table_mv_pair INDEX BY PLS_INTEGER;
13 l_tab_mv table_mv_pair_tab;
14
15 TYPE v_n IS RECORD(tab_index NUMBER);
16 TYPE v_n_v is table OF v_n INDEX BY VARCHAR2(50);
17 tab_mv_index v_n_v;
18
19 PROCEDURE DEBUG(TEXT VARCHAR2)
20 IS
21 BEGIN
22 --DBMS_OUTPUT.PUT_LINE(TEXT);
23 IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
24 --IF (FND_LOG.TEST(FND_LOG.LEVEL_ERROR, G_BSC_SCHEMA||'.BSC_PMD_OPT_DOC_UTIL')) THEN
25 FND_LOG.STRING(FND_LOG.LEVEL_ERROR, G_BSC_SCHEMA||'.BSC_PMD_OPT_DOC_UTIL',TEXT);
26 END IF;
27 END;
28
29 Procedure POPULATE_DISPLAY_TYPE
30 IS
31 BEGIN
32 UPDATE bsc_db_tables_display
33 set DISPLAY_TYPE = 'TABLE'
34 where PHYSICAL_TYPE = 'TABLE';
35
36 UPDATE bsc_db_tables_display
37 set DISPLAY_TYPE = 'ANALYTICAL_WORKSPACES'
38 where PHYSICAL_TYPE = 'VIEW'
39 and TABLE_NAME_DISPLAY LIKE 'BSC\_S%' ESCAPE '\'
40 and exists (SELECT 1
41 from BSC_KPI_PROPERTIES
42 where INDICATOR =
43 TO_NUMBER(
44 SUBSTR(TABLE_NAME_DISPLAY,
45 INSTR(TABLE_NAME_DISPLAY,'_',1,2)+1,
46 INSTR(TABLE_NAME_DISPLAY,'_',1,3)-INSTR(TABLE_NAME_DISPLAY,'_',1,2)-1))
47 and PROPERTY_CODE = 'IMPLEMENTATION_TYPE'
48 and PROPERTY_VALUE = 2);
49
50 UPDATE bsc_db_tables_display
51 set DISPLAY_TYPE = 'VIEW'
52 where PHYSICAL_TYPE = 'VIEW'
53 and (TABLE_NAME_DISPLAY NOT LIKE 'BSC\_S%' ESCAPE '\'
54 or not exists (SELECT 1
55 from BSC_KPI_PROPERTIES
56 where INDICATOR =
57 TO_NUMBER(
58 SUBSTR(TABLE_NAME_DISPLAY,
59 INSTR(TABLE_NAME_DISPLAY,'_',1,2)+1,
60 INSTR(TABLE_NAME_DISPLAY,'_',1,3)-INSTR(TABLE_NAME_DISPLAY,'_',1,2)-1))
61 and PROPERTY_CODE = 'IMPLEMENTATION_TYPE'
62 and PROPERTY_VALUE = 2));
63
64 UPDATE bsc_db_tables_display
65 set DISPLAY_TYPE = 'MATERIALIZED_VIEW'
66 where PHYSICAL_TYPE = 'MATERIALIZED VIEW';
67 commit;
68 END;
69
70 Procedure analyze_table( p_table_name in Varchar2) IS
71 l_bsc_schema VARCHAR2(30);
72 l_stmt VARCHAR2(200);
73 l_status VARCHAR2(30);
74 l_industry VARCHAR2(30);
75 errbuf varchar2(2000):=null;
76 retcode varchar2(200):=null;
77 BEGIN
78
79 IF (FND_INSTALLATION.GET_APP_INFO('BSC', l_status, l_industry, l_bsc_schema)) THEN
80 FND_STATS.GATHER_TABLE_STATS(errbuf,retcode, l_bsc_schema, p_table_name ) ;
81 END IF;
82 END;
83
84
85 PROCEDURE GEN_MASTER_DISPLAY_SUM_MODE
86 IS
87 l_stmt varchar2(32767):= '
88 select
89 TABLE_NAME TABLE_DISPLAY,
90 TABLE_TYPE,
91 null DISPLAY_TYPE,
92 ''TABLE'' PHYSICAL_TYPE
93 from bsc_db_tables
94 --where TABLE_TYPE <> 2 -- commented by Arun as we need to display D tables also in the new UI
95
96 union /* for D tables*/ --bug 3918860
97 select
98 TABLE_NAME TABLE_DISPLAY,
99 2 TABLE_TYPE,
100 null DISPLAY_TYPE,
101 ''TABLE'' PHYSICAL_TYPE
102 from
103 bsc_db_tables_rels
104 where
105 TABLE_NAME like ''BSC_D_%''
106 ';
107 BEGIN
108 l_stmt:='insert into ' || G_MASTER_DISPLAY_TABLE || l_stmt ;
109 execute immediate l_stmt;
110 debug('executed ' || l_stmt);
111 END;
112
113
114 PROCEDURE GEN_TBLREL_DISPLAY_SUM_MODE
115 IS
116 l_stmt varchar2(32767):= '
117 select *
118 from bsc_db_tables_rels
119 ';
120
121 BEGIN
122 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
123 execute immediate l_stmt;
124 debug('executed ' || l_stmt);
125 END;
126
127 PROCEDURE GEN_TBLREL_DISPLAY --bug 3918860
128 IS
129 l_stmt varchar2(32767):= '
130 select *
131 from bsc_db_tables_rels
132 where table_name like ''BSC_D%''
133 ';
134
135 BEGIN
136 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
137 execute immediate l_stmt;
138 debug('executed ' || l_stmt);
139 END;
140
141
142 -- aguwalan : bug fix#4602415 : Modified to get the MV names from the PL/SQL table rather than expensive query
143 FUNCTION GET_MV_BY_STABLE(
144 P_STABLE IN VARCHAR2
145 ) RETURN VARCHAR2
146 IS
147 l_mv_name VARCHAR2(30);
148
149 BEGIN
150 l_mv_name := null;
151 IF ( INSTR(P_STABLE, 'BSC_SB_') > 0 ) THEN
152 return null;
153 ELSIF ( INSTR(P_STABLE, 'BSC_S_') = 0 ) THEN
154 return P_STABLE;
155 END IF;
156
157 l_mv_name := l_tab_mv(tab_mv_index(P_STABLE||'-MV').tab_index).mv_name;
158
159 IF (l_mv_name IS NULL) THEN
160 l_mv_name := P_STABLE;
161 END IF;
162
163 return l_mv_name;
164 END;
165
166 -- aguwalan : bug fix#4602415 : Modified to get the ZMV name from the PL/SQL table rather than expensive query
167 FUNCTION GET_ZMV_BY_STABLE(
168 P_STABLE IN VARCHAR2
169 ) RETURN VARCHAR2
170 IS
171 l_zmv_name VARCHAR2(30);
172
173 BEGIN
174 l_zmv_name := null;
175 IF ( INSTR(P_STABLE, 'BSC_SB_') > 0 ) THEN
176 return null;
177 ELSIF ( INSTR(P_STABLE, 'BSC_S_') = 0 ) THEN
178 return P_STABLE;
179 END IF;
180 l_zmv_name := l_tab_mv(tab_mv_index(P_STABLE||'-ZMV').tab_index).mv_name;
181 IF (l_zmv_name IS NULL) THEN
182 l_zmv_name := P_STABLE;
183 END IF;
184 return l_zmv_name;
185 END;
186
187 FUNCTION GET_MV_BY_SBTABLE(
188 P_STABLE IN VARCHAR2
189 ) RETURN VARCHAR2
190 IS
191 BEGIN
192 IF(P_STABLE like 'BSC_SB%') THEN
193 RETURN SUBSTR( P_STABLE, 1, INSTR(P_STABLE, '_', -1)) || 'MV' ;
194 ELSE
195 RETURN NULL;
196 END IF;
197
198 END;
199
200
201
202 PROCEDURE TRUNC_BSC_TBL(TBL_NAME VARCHAR2)
203 IS
204 BEGIN
205 execute immediate 'truncate table ' || G_BSC_SCHEMA || '.' || TBL_NAME;
206 DEBUG('executed truncate table ' || G_BSC_SCHEMA || '.' || TBL_NAME);
207 END;
208
209
210 PROCEDURE CREATE_BSC_TMP_TABLE(p_table varchar2, p_stmt varchar2)
211 IS
212 l_stmt varchar2(32767) := 'create table ' || p_table || ' as ' || p_stmt;
213 BEGIN
214
215 begin
216 execute immediate 'drop table ' || p_table;
217 debug('drop table '|| p_table );
218 exception when others then
219 debug('encounter error ' || sqlerrm );
220 end;
221
222 debug('executing: ' || l_stmt);
223 execute immediate l_stmt;
224 debug('executed');
225 END;
226
227 PROCEDURE CREATE_BSC_T_COLLAPSE_TMP
228 IS
229 l_stmt varchar2(32767):= '
230 select * from bsc_db_tables_rels
231 where (SOURCE_TABLE_NAME like ''BSC_B%''
232 and TABLE_NAME like ''BSC_T%'') OR
233 SOURCE_TABLE_NAME like ''BSC_T%''
234 ';
235 BEGIN
236 CREATE_BSC_TMP_TABLE(G_T_COLLAPSE_TEMP, l_stmt);
237
238 l_stmt:='create index '||G_T_COLLAPSE_TEMP||'_U1'||' on '||G_T_COLLAPSE_TEMP||'(SOURCE_TABLE_NAME, TABLE_NAME)';
239 execute immediate l_stmt;
240 debug('executed ' || l_stmt);
241 END;
242
243
244 PROCEDURE MAKE_T_COLLAPSE_AND_COPY
245 IS
246 l_stmt varchar2(32767):= '
247 select distinct BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(t1.table_name) table_name_display, k.source_table_name source_table_name_display, t1.relation_type
248 from '||G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP t1, '||G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP k
249 where t1.source_table_name in (
250 select t2.table_name
251 from '||G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP t2
252 start with t2.source_table_name = k.source_table_name
253 connect by prior t2.table_name = t2.source_table_name
254 and t2.table_name like ''BSC_T%''
255 )
256 and t1.TABLE_NAME like ''BSC_S_%''
257 and k.source_table_name like ''BSC_B%''
258 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(t1.table_name) is not null
259 union
260 select distinct BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(t1.table_name) table_name_display, k.source_table_name source_table_name_display, t1.relation_type
261 from '||G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP t1, '||G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP k
262 where t1.source_table_name in (
263 select t2.table_name
264 from '||G_BSC_SCHEMA||'.BSC_T_COLLAPSE_TEMP t2
265 start with t2.source_table_name = k.source_table_name
266 connect by prior t2.table_name = t2.source_table_name
267 and t2.table_name like ''BSC_T%''
268 )
269 and t1.TABLE_NAME like ''BSC_SB_%''
270 and k.source_table_name like ''BSC_B%''
271 ';
272 BEGIN
273 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
274 execute immediate l_stmt;
275 debug('executed ' || l_stmt);
276 END;
277
278 PROCEDURE COPY_THE_REST
279 IS
280 l_stmt varchar2(32767):= '
281 select TABLE_NAME TABLE_NAME_DISPLAY, SOURCE_TABLE_NAME SOURCE_TABLE_NAME_DISPLAY, relation_type
282 from bsc_db_tables_rels
283 where (SOURCE_TABLE_NAME like ''BSC_I%''
284 or SOURCE_TABLE_NAME like ''BSC_B%'' )
285 and TABLE_NAME not like ''BSC_S%''
286 and TABLE_NAME not like ''BSC_T%''
287 and relation_type = 0
288 union
289 select distinct BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME) TABLE_NAME_DISPLAY
290 , SOURCE_TABLE_NAME SOURCE_TABLE_NAME_DISPLAY, relation_type from bsc_db_tables_rels
291 where
292 SOURCE_TABLE_NAME like ''BSC_B%''
293 and TABLE_NAME like ''BSC_S_%''
294 and TABLE_NAME not like ''BSC_SB_%''
295 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME) is not null
296 and relation_type = 0
297 union
298 select distinct BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(TABLE_NAME) TABLE_NAME_DISPLAY
299 , SOURCE_TABLE_NAME SOURCE_TABLE_NAME_DISPLAY, relation_type from bsc_db_tables_rels
300 where
301 SOURCE_TABLE_NAME like ''BSC_B%''
302 and TABLE_NAME like ''BSC_SB_%''
303 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(TABLE_NAME) is not null
304 and relation_type = 0
305 ';
306 BEGIN
307 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
308 execute immediate l_stmt;
309 debug('executed ' || l_stmt);
310 END;
311
312 PROCEDURE GEN_SB2S_OR_SB2S_DISPLAY
313 IS
314 l_stmt varchar2(32767):= '
315 select distinct
316 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(TABLE_NAME) TABLE_NAME_DISPALY,
317 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(SOURCE_TABLE_NAME) SOURCE_TABLE_NAME_DISPALY,
318 RELATION_TYPE
319 from bsc_db_tables_rels
320 where source_table_name like ''BSC_SB_%''
321 and table_name like ''BSC_SB_%''
322 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(TABLE_NAME) <>
323 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(SOURCE_TABLE_NAME)
324 union
325 select distinct
326 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME) TABLE_NAME_DISPALY,
327 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(SOURCE_TABLE_NAME) SOURCE_TABLE_NAME_DISPALY,
328 RELATION_TYPE
329 from bsc_db_tables_rels
330 where source_table_name like ''BSC_SB_%''
331 and table_name like ''BSC_S_%''
332 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME) is not null
333 ';
334 BEGIN
335 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
336 execute immediate l_stmt;
337 debug('executed ' || l_stmt);
338 END;
339
340 PROCEDURE GEN_S2S_DISPLAY
341 IS
342 l_stmt varchar2(32767):= '
343 select distinct BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(table_name) table_name_display,
344 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(source_table_name) source_table_name_display,
345 relation_type
346 from bsc_db_tables_rels
347 where
348 SOURCE_TABLE_NAME like ''BSC_S_%''
349 and TABLE_NAME like ''BSC_S_%''
350 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(table_name) <>
351 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(source_table_name)
352 and relation_type = 0
353 ';
354 BEGIN
355 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
356 execute immediate l_stmt;
357 debug('executed ' || l_stmt);
358 END;
359
360 PROCEDURE GEN_ZMV_DISPLAY
361 IS
362 l_stmt varchar2(32767):= '
363 select distinct BSC_PMD_OPT_DOC_UTIL.GET_ZMV_BY_STABLE(table_name) table_name_display,
364 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(table_name) source_table_name_display,
365 null relation_type
366 from bsc_db_tables
367 where
368 TABLE_NAME like ''BSC_S_%''
369 and BSC_PMD_OPT_DOC_UTIL.GET_ZMV_BY_STABLE(table_name) is not null
370 ';
371 BEGIN
372 l_stmt:='insert into ' || G_REL_DISPLAY_TABLE || l_stmt ;
373 execute immediate l_stmt;
374 debug('executed ' || l_stmt);
375 END;
376
377 PROCEDURE GEN_MASTER_DISPLAY
378 IS
379 l_stmt varchar2(32767):= '
380 select /*I and B tables*/
381 TABLE_NAME TABLE_DISPLAY,
382 TABLE_TYPE,
383 null DISPLAY_TYPE,
384 ''TABLE'' PHYSICAL_TYPE
385 from bsc_db_tables
386 where ( TABLE_NAME like ''BSC_I_%'' OR TABLE_NAME like ''BSC_B_%'' OR TABLE_NAME like ''BSC_DI_%'' )
387 union /* for _MV*/
388 select
389 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME) TABLE_DISPLAY,
390 TABLE_TYPE,
391 null DISPLAY_TYPE,
392 o.object_type PHYSICAL_TYPE
393 from bsc_db_tables, all_objects o
394 where o.owner in (:1, :2)
395 and o.object_type in (''VIEW'', ''MATERIALIZED VIEW'')
396 and TABLE_TYPE = 1
397 and TABLE_NAME like ''BSC_S_%''
398 and BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME) is not null
399 and o.object_name = BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME)
400 union /* for _ZMV*/
401 select
402 BSC_PMD_OPT_DOC_UTIL.GET_ZMV_BY_STABLE(TABLE_NAME) TABLE_DISPLAY,
403 TABLE_TYPE,
404 null DISPLAY_TYPE,
405 o.object_type PHYSICAL_TYPE
406 from bsc_db_tables, all_objects o
407 where TABLE_TYPE =1
408 and TABLE_NAME like ''BSC_S_%''
409 and BSC_PMD_OPT_DOC_UTIL.GET_ZMV_BY_STABLE(TABLE_NAME) is not null
410 and o.owner in (:3, :4)
411 and o.object_type in (''VIEW'', ''MATERIALIZED VIEW'')
412 and o.object_name = BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_STABLE(TABLE_NAME)
413 union /* for SB tables*/
414 select
415 BSC_PMD_OPT_DOC_UTIL.GET_MV_BY_SBTABLE(TABLE_NAME) TABLE_DISPLAY,
416 TABLE_TYPE,
417 null DISPLAY_TYPE,
418 ''TABLE'' PHYSICAL_TYPE
419 from bsc_db_tables
420 where TABLE_TYPE = 1
421 and TABLE_NAME like ''BSC_SB_%''
422 union /* for D tables*/ --bug 3918860
423 select
424 TABLE_NAME TABLE_DISPLAY,
425 2 TABLE_TYPE,
426 null DISPLAY_TYPE,
427 ''TABLE'' PHYSICAL_TYPE
428 from
429 bsc_db_tables_rels
430 where
431 TABLE_NAME like ''BSC_D_%''
432 ';
433 BEGIN
434 l_stmt:='insert into ' || G_MASTER_DISPLAY_TABLE || l_stmt ;
435 execute immediate l_stmt using G_APPS_SCHEMA, G_BSC_SCHEMA, G_APPS_SCHEMA, G_BSC_SCHEMA;
436 debug('executed ' || l_stmt);
437 END;
438
439 -- aguwalan : bug fix#4602415 : Added code to build PL/SQL table rather than expensive query
440 PROCEDURE BUILD_STABLE_MV_ZMV_REP
441 IS
442 CURSOR build_table_mv IS
443 SELECT distinct TABLE_NAME,MV_NAME,decode(substr(MV_NAME,-3),'ZMV','ZMV','MV') mv_type FROM BSC_KPI_DATA_TABLES where MV_NAME is not null;
444 BEGIN
445 OPEN build_table_mv;
446 LOOP
447 FETCH build_table_mv BULK COLLECT INTO l_tab_mv;
448 EXIT WHEN build_table_mv%NOTFOUND;
449 END LOOP;
450 CLOSE build_table_mv;
451 FOR i IN 1..l_tab_mv.count LOOP
452 tab_mv_index(l_tab_mv(i).table_name||'-'||l_tab_mv(i).mv_type).tab_index:=i;
453 END LOOP;
454
455 END;
456
457 PROCEDURE GEN_TBL_RELS_DISPLAY
458 IS
459 BEGIN
460 TRUNC_BSC_TBL(G_REL_DISPLAY_TABLE);
461 TRUNC_BSC_TBL(G_MASTER_DISPLAY_TABLE);
462 BUILD_STABLE_MV_ZMV_REP;
463 IF (fnd_profile.value('BSC_ADVANCED_SUMMARIZATION_LEVEL') is not null ) THEN
464 CREATE_BSC_T_COLLAPSE_TMP;
465 MAKE_T_COLLAPSE_AND_COPY;
466 COPY_THE_REST;
467 GEN_S2S_DISPLAY;
468 GEN_SB2S_OR_SB2S_DISPLAY;
469 GEN_ZMV_DISPLAY;
470
471 GEN_MASTER_DISPLAY;
472 GEN_TBLREL_DISPLAY; --bug 3918860
473 ELSE
474 GEN_MASTER_DISPLAY_SUM_MODE;
475 GEN_TBLREL_DISPLAY_SUM_MODE;
476 END IF;
477 commit;
478 POPULATE_DISPLAY_TYPE;
479
480 analyze_table(G_REL_DISPLAY_TABLE);
481 analyze_table(G_MASTER_DISPLAY_TABLE);
482 END;
483
484
485 /*
486 * For bug: 3662676
487 * Release the restriction on BSC_S_%, per tal with arun, per tal with arun
488 * it will work for other type of table renaming from now on.
489 */
490 PROCEDURE RENAME_TBL_RELS_DISPLAY(
491 P_OLD IN VARCHAR2,
492 P_NEW IN VARCHAR2
493 ) IS
494 BEGIN
495 UPDATE BSC_DB_TABLES_DISPLAY
496 SET TABLE_NAME_DISPLAY = P_NEW
497 WHERE TABLE_NAME_DISPLAY = P_OLD;
498 --AND P_NEW like 'BSC_S_%'
499 --AND P_OLD like 'BSC_S_%';
500
501 UPDATE BSC_DB_TABLES_RELS_DISPLAY
502 SET SOURCE_TABLE_NAME_DISPLAY = P_NEW
503 WHERE SOURCE_TABLE_NAME_DISPLAY = P_OLD;
504 --AND P_NEW like 'BSC_S_%'
505 --AND P_OLD like 'BSC_S_%';
506
507 COMMIT;
508 END;
509
510 END BSC_PMD_OPT_DOC_UTIL;