|
SQL> DECLARE
2 h1 NUMBER; -- data pump job handle
3 schema_expr_list VARCHAR2(32767); -- for metadata_filter
4 cnt NUMBER; -- temp variable
5 object_owner dbms_utility.uncl_array; -- obj owners
6 job_state VARCHAR2(30); -- job state
7 status ku$_Status; -- data pump status
8 job_not_exist exception;
9 pragma exception_init(job_not_exist, -31626);
10 BEGIN
11
12 object_owner(1) := 'TEST';
13 object_owner(2) := 'TEST1';
14 FOR idx IN 1..2 LOOP
15 -- schema does not exist locally, need instantiation
16 IF schema_expr_list IS NULL THEN
17 schema_expr_list := '(';
18 ELSE
19 schema_expr_list := schema_expr_list ||',';
20 END IF;
21 schema_expr_list := schema_expr_list||''''||object_owner(idx)||'''';
22 END LOOP;
23 IF schema_expr_list IS NOT NULL THEN
24 schema_expr_list := schema_expr_list || ')';
25 ELSE
26 COMMIT;
27 RETURN;
28 END IF;
29
30 h1 := dbms_datapump.open(operation=>'IMPORT',job_mode=>'SCHEMA',
31 remote_link=>'',
32 job_name=>NULL, version=>'COMPATIBLE');
33
34
35
36 dbms_datapump.add_file(
37 handle=>h1,
38 filename=>'expdat346.dmp',
39 directory=>'EXPMASIC202_DIR',
40 filetype=>dbms_datapump.ku$_file_type_dump_file);
41 dbms_datapump.add_file(
42 handle=>h1,
43 filename=>'expdat346.dlg',
44 directory=>'EXPMASIC202_DIR',
45 filetype=>dbms_datapump.ku$_file_type_log_file);
46
47 dbms_datapump.start_job(h1);
48
49 job_state := 'UNDEFINED';
50 BEGIN
51 WHILE (job_state != 'COMPLETED') AND (job_state != 'STOPPED') LOOP
52 status := dbms_datapump.get_status(
53 handle => h1,
54 mask => dbms_datapump.ku$_status_job_error +
55 dbms_datapump.ku$_status_job_status +
56 dbms_datapump.ku$_status_wip,
57 timeout => -1);
58 job_state := status.job_status.state;
59 dbms_lock.sleep(10);
60 END LOOP;
61 EXCEPTION WHEN job_not_exist THEN
62 dbms_output.put_line('job finished');
63 END;
64 COMMIT;
65 EXCEPTION WHEN OTHERS THEN
66 ROLLBACK;
67 RAISE;
68 END;
69
70 /
DECLARE
*
ERROR at line 1:
ORA-39001: invalid argument value
ORA-06512: at line 67 |
|