43: RAISE;
44: END log_pb_sync_errors;
45:
46: ---------------------------------------------------
47: ------function that retrieves the db link name from cz_servers
48: FUNCTION retrieve_link_name(p_tgt_server_id cz_servers.server_local_id%TYPE)
49: RETURN VARCHAR2
50: IS
51:
44: END log_pb_sync_errors;
45:
46: ---------------------------------------------------
47: ------function that retrieves the db link name from cz_servers
48: FUNCTION retrieve_link_name(p_tgt_server_id cz_servers.server_local_id%TYPE)
49: RETURN VARCHAR2
50: IS
51:
52: v_db_link_name cz_servers.fndnam_link_name%TYPE := NULL;
48: FUNCTION retrieve_link_name(p_tgt_server_id cz_servers.server_local_id%TYPE)
49: RETURN VARCHAR2
50: IS
51:
52: v_db_link_name cz_servers.fndnam_link_name%TYPE := NULL;
53:
54: BEGIN
55: IF (p_tgt_server_id IS NOT NULL) THEN
56: SELECT fndnam_link_name
54: BEGIN
55: IF (p_tgt_server_id IS NOT NULL) THEN
56: SELECT fndnam_link_name
57: INTO v_db_link_name
58: FROM cz_servers
59: WHERE cz_servers.server_local_id = p_tgt_server_id;
60: v_db_link_name := '@'||v_db_link_name;
61: END IF;
62: RETURN v_db_link_name;
55: IF (p_tgt_server_id IS NOT NULL) THEN
56: SELECT fndnam_link_name
57: INTO v_db_link_name
58: FROM cz_servers
59: WHERE cz_servers.server_local_id = p_tgt_server_id;
60: v_db_link_name := '@'||v_db_link_name;
61: END IF;
62: RETURN v_db_link_name;
63: EXCEPTION
65: RETURN v_db_link_name;
66: END retrieve_link_name;
67:
68: ---------------------------------------------------------
69: ----procedure that retrieves the target server id from cz_servers
70: FUNCTION get_target_instance_id(p_target_instance IN VARCHAR2)
71: RETURN NUMBER
72: IS
73:
70: FUNCTION get_target_instance_id(p_target_instance IN VARCHAR2)
71: RETURN NUMBER
72: IS
73:
74: v_tgt_server_id cz_servers.server_local_id%TYPE;
75:
76: BEGIN
77: v_tgt_server_id := 0;
78: SELECT server_local_id
76: BEGIN
77: v_tgt_server_id := 0;
78: SELECT server_local_id
79: INTO v_tgt_server_id
80: FROM cz_servers
81: WHERE UPPER(cz_servers.local_name) = UPPER(LTRIM(RTRIM(p_target_instance)));
82: RETURN v_tgt_server_id ;
83: EXCEPTION
84: WHEN NO_DATA_FOUND THEN
77: v_tgt_server_id := 0;
78: SELECT server_local_id
79: INTO v_tgt_server_id
80: FROM cz_servers
81: WHERE UPPER(cz_servers.local_name) = UPPER(LTRIM(RTRIM(p_target_instance)));
82: RETURN v_tgt_server_id ;
83: EXCEPTION
84: WHEN NO_DATA_FOUND THEN
85: RETURN v_tgt_server_id ;
88: END get_target_instance_id;
89:
90: ------------------------------------------------------------
91: -----function that checks if the database lnk is active
92: FUNCTION check_db_link(p_db_link_name IN cz_servers.fndnam_link_name%TYPE)
93: RETURN BOOLEAN
94: IS
95:
96: gl_ref_cursor REF_CURSOR;
124: -------------------------------------------------------------
125: ------function that validates the schema versions on the source
126: ------and the cloned instances
127: ------
128: FUNCTION validate_schema(target_server_id cz_servers.server_local_id%TYPE)
129: RETURN BOOLEAN
130: IS
131:
132: v_source_major_version cz_db_settings.value%TYPE;
133: v_source_minor_version cz_db_settings.value%TYPE;
134: v_target_major_version cz_db_settings.value%TYPE;
135: v_target_minor_version cz_db_settings.value%TYPE;
136: db_schema_compare_cur ref_cursor ;
137: v_db_link cz_servers.fndnam_link_name%TYPE;
138: v_validate_schema_flg BOOLEAN := TRUE;
139: v_count PLS_INTEGER := 0;
140:
141: BEGIN
212: ------------------------------------------------------
213: ----procedure used by publishing to check if the target server is
214: ----actually a target and not a source.
215: ----if target then a value of 0 is returned
216: PROCEDURE verify_tgt_server(p_link_name IN cz_servers.fndnam_link_name%TYPE,
217: x_status OUT NOCOPY VARCHAR2,
218: x_msg OUT NOCOPY VARCHAR2)
219: IS
220:
217: x_status OUT NOCOPY VARCHAR2,
218: x_msg OUT NOCOPY VARCHAR2)
219: IS
220:
221: l_instance_name cz_servers.instance_name%TYPE;
222: l_hostname cz_servers.hostname%TYPE;
223: l_listener_port cz_servers.db_listener_port%TYPE;
224: l_source_server_flag cz_servers.source_server_flag%TYPE;
225: l_tgt_instance_name cz_servers.instance_name%TYPE;
218: x_msg OUT NOCOPY VARCHAR2)
219: IS
220:
221: l_instance_name cz_servers.instance_name%TYPE;
222: l_hostname cz_servers.hostname%TYPE;
223: l_listener_port cz_servers.db_listener_port%TYPE;
224: l_source_server_flag cz_servers.source_server_flag%TYPE;
225: l_tgt_instance_name cz_servers.instance_name%TYPE;
226: gl_ref_cursor REF_CURSOR;
219: IS
220:
221: l_instance_name cz_servers.instance_name%TYPE;
222: l_hostname cz_servers.hostname%TYPE;
223: l_listener_port cz_servers.db_listener_port%TYPE;
224: l_source_server_flag cz_servers.source_server_flag%TYPE;
225: l_tgt_instance_name cz_servers.instance_name%TYPE;
226: gl_ref_cursor REF_CURSOR;
227: seq_ref_cursor REF_CURSOR;
220:
221: l_instance_name cz_servers.instance_name%TYPE;
222: l_hostname cz_servers.hostname%TYPE;
223: l_listener_port cz_servers.db_listener_port%TYPE;
224: l_source_server_flag cz_servers.source_server_flag%TYPE;
225: l_tgt_instance_name cz_servers.instance_name%TYPE;
226: gl_ref_cursor REF_CURSOR;
227: seq_ref_cursor REF_CURSOR;
228: l_server_local_id cz_servers.server_local_id%TYPE;
221: l_instance_name cz_servers.instance_name%TYPE;
222: l_hostname cz_servers.hostname%TYPE;
223: l_listener_port cz_servers.db_listener_port%TYPE;
224: l_source_server_flag cz_servers.source_server_flag%TYPE;
225: l_tgt_instance_name cz_servers.instance_name%TYPE;
226: gl_ref_cursor REF_CURSOR;
227: seq_ref_cursor REF_CURSOR;
228: l_server_local_id cz_servers.server_local_id%TYPE;
229:
224: l_source_server_flag cz_servers.source_server_flag%TYPE;
225: l_tgt_instance_name cz_servers.instance_name%TYPE;
226: gl_ref_cursor REF_CURSOR;
227: seq_ref_cursor REF_CURSOR;
228: l_server_local_id cz_servers.server_local_id%TYPE;
229:
230: l_msg VARCHAR2(2000);
231:
232: BEGIN
233: x_status := '0';
234:
235: SELECT instance_name,hostname,db_listener_port
236: INTO l_instance_name,l_hostname,l_listener_port
237: FROM cz_servers
238: WHERE UPPER(cz_servers.local_name) = 'LOCAL';
239:
240: OPEN gl_ref_cursor FOR 'SELECT instance_name, source_server_flag
241: FROM cz_servers'||p_link_name||' t
234:
235: SELECT instance_name,hostname,db_listener_port
236: INTO l_instance_name,l_hostname,l_listener_port
237: FROM cz_servers
238: WHERE UPPER(cz_servers.local_name) = 'LOCAL';
239:
240: OPEN gl_ref_cursor FOR 'SELECT instance_name, source_server_flag
241: FROM cz_servers'||p_link_name||' t
242: WHERE UPPER(t.local_name) = UPPER('''||l_instance_name||''')';
237: FROM cz_servers
238: WHERE UPPER(cz_servers.local_name) = 'LOCAL';
239:
240: OPEN gl_ref_cursor FOR 'SELECT instance_name, source_server_flag
241: FROM cz_servers'||p_link_name||' t
242: WHERE UPPER(t.local_name) = UPPER('''||l_instance_name||''')';
243: LOOP
244: FETCH gl_ref_cursor INTO l_tgt_instance_name, l_source_server_flag;
245: EXIT WHEN gl_ref_cursor%NOTFOUND;
256: x_status := '1';
257: x_msg := CZ_UTILS.GET_TEXT('CZ_PB_MGR_NOT_PRD_INSTANCE');
258: END IF;
259: ELSE
260: l_msg := 'SELECT cz_servers_s.nextval from dual'||p_link_name;
261: OPEN seq_ref_cursor FOR 'SELECT cz_servers_s.nextval from dual'||p_link_name;
262: LOOP
263: EXIT WHEN seq_ref_cursor%NOTFOUND;
264: FETCH seq_ref_cursor INTO l_server_local_id;
257: x_msg := CZ_UTILS.GET_TEXT('CZ_PB_MGR_NOT_PRD_INSTANCE');
258: END IF;
259: ELSE
260: l_msg := 'SELECT cz_servers_s.nextval from dual'||p_link_name;
261: OPEN seq_ref_cursor FOR 'SELECT cz_servers_s.nextval from dual'||p_link_name;
262: LOOP
263: EXIT WHEN seq_ref_cursor%NOTFOUND;
264: FETCH seq_ref_cursor INTO l_server_local_id;
265: END LOOP;
264: FETCH seq_ref_cursor INTO l_server_local_id;
265: END LOOP;
266: CLOSE seq_ref_cursor;
267:
268: l_msg := 'INSERT INTO cz_servers'||p_link_name||'
269: (server_local_id,local_name,hostname,db_listener_port,instance_name,import_enabled,source_server_flag)
270: SELECT '||l_server_local_id||',local_name,hostname,db_listener_port,instance_name,import_enabled,''1''
271: FROM cz_servers where UPPER(cz_servers.local_name) = ''LOCAL'' ';
272:
267:
268: l_msg := 'INSERT INTO cz_servers'||p_link_name||'
269: (server_local_id,local_name,hostname,db_listener_port,instance_name,import_enabled,source_server_flag)
270: SELECT '||l_server_local_id||',local_name,hostname,db_listener_port,instance_name,import_enabled,''1''
271: FROM cz_servers where UPPER(cz_servers.local_name) = ''LOCAL'' ';
272:
273: EXECUTE IMMEDIATE
274: 'INSERT INTO cz_servers'||p_link_name||
275: ' (server_local_id,local_name,hostname,db_listener_port,instance_name,import_enabled,source_server_flag) ' ||
270: SELECT '||l_server_local_id||',local_name,hostname,db_listener_port,instance_name,import_enabled,''1''
271: FROM cz_servers where UPPER(cz_servers.local_name) = ''LOCAL'' ';
272:
273: EXECUTE IMMEDIATE
274: 'INSERT INTO cz_servers'||p_link_name||
275: ' (server_local_id,local_name,hostname,db_listener_port,instance_name,import_enabled,source_server_flag) ' ||
276: ' SELECT '||l_server_local_id||',instance_name,hostname,db_listener_port,instance_name,import_enabled,''1'' ' ||
277: ' FROM cz_servers where UPPER(cz_servers.local_name) = ''LOCAL'' ';
278: COMMIT;
273: EXECUTE IMMEDIATE
274: 'INSERT INTO cz_servers'||p_link_name||
275: ' (server_local_id,local_name,hostname,db_listener_port,instance_name,import_enabled,source_server_flag) ' ||
276: ' SELECT '||l_server_local_id||',instance_name,hostname,db_listener_port,instance_name,import_enabled,''1'' ' ||
277: ' FROM cz_servers where UPPER(cz_servers.local_name) = ''LOCAL'' ';
278: COMMIT;
279: x_status := '0';
280: END IF;
281: EXCEPTION
301: ----------------------------------------------------------------
302: ----procedure used by migration to check if the target server is
303: ----a Development instance and models can indeed migrate
304: -----------------------------------------------------------------
305: PROCEDURE verify_mig_tgt_server(p_link_name IN cz_servers.fndnam_link_name%TYPE,
306: x_status OUT NOCOPY VARCHAR2,
307: x_msg OUT NOCOPY VARCHAR2)
308: IS
309:
308: IS
309:
310: l_converted_target VARCHAR2(1);
311: l_msg VARCHAR2(2000);
312: p_link_name_trim cz_servers.fndnam_link_name%TYPE;
313:
314: BEGIN
315:
316: --the local name is being passed as null because this is a migration