[Home] [Help]
PACKAGE: SYS.DBMS_PARALLEL_EXECUTE
Source
1 package dbms_parallel_execute AUTHID CURRENT_USER AS
2
3 --
4 -- Chunk status value
5 --
6 UNASSIGNED CONSTANT NUMBER := 0;
7 ASSIGNED CONSTANT NUMBER := 1;
8 PROCESSED CONSTANT NUMBER := 2;
9 PROCESSED_WITH_ERROR CONSTANT NUMBER := 3;
10
11
12 --
13 -- Task Status value
14 --
15 CREATED CONSTANT NUMBER := 1;
16 CHUNKING CONSTANT NUMBER := 2;
17 CHUNKING_FAILED CONSTANT NUMBER := 3;
18 NO_CHUNKS CONSTANT NUMBER := 4;
19 CHUNKED CONSTANT NUMBER := 5;
20 PROCESSING CONSTANT NUMBER := 6;
21 FINISHED CONSTANT NUMBER := 7;
22 FINISHED_WITH_ERROR CONSTANT NUMBER := 8;
23 CRASHED CONSTANT NUMBER := 9;
24
25
26 --
27 -- Exceptions
28 --
29 MISSING_ROLE EXCEPTION;
30 pragma exception_init(MISSING_ROLE, -29490);
31 INVALID_TABLE EXCEPTION;
32 pragma exception_init(INVALID_TABLE, -29491);
33 INVALID_STATE_FOR_CHUNK EXCEPTION;
34 pragma exception_init(INVALID_STATE_FOR_CHUNK, -29492);
35 INVALID_STATUS EXCEPTION;
36 pragma exception_init(INVALID_STATUS, -29493);
37 INVALID_STATE_FOR_RUN EXCEPTION;
38 pragma exception_init(INVALID_STATE_FOR_RUN, -29494);
39 INVALID_STATE_FOR_RESUME EXCEPTION;
40 pragma exception_init(INVALID_STATE_FOR_RESUME, -29495);
41 DUPLICATE_TASK_NAME EXCEPTION;
42 pragma exception_init(DUPLICATE_TASK_NAME, -29497);
43 TASK_NOT_FOUND EXCEPTION;
44 pragma exception_init(TASK_NOT_FOUND, -29498);
45 CHUNK_NOT_FOUND EXCEPTION;
46 pragma exception_init(CHUNK_NOT_FOUND, -29499);
47
48 -- Create/Drop Task Procedure
49 function generate_task_name(prefix in varchar2 default 'TASK$_')
50 return varchar2;
51
52 procedure create_task(task_name in varchar2,
53 comment in varchar2 default null);
54
55 procedure drop_task(task_name in varchar2);
56
57
58 -- Create/Drop Chunks Procedures
59 procedure create_chunks_by_rowid(task_name in varchar2,
60 table_owner in varchar2,
61 table_name in varchar2,
62 by_row in boolean,
63 chunk_size in number);
64
65 procedure create_chunks_by_number_col(task_name in varchar2,
66 table_owner in varchar2,
67 table_name in varchar2,
68 table_column in varchar2,
69 chunk_size in number);
70
71 procedure create_chunks_by_SQL(task_name in varchar2,
72 sql_stmt in clob,
73 by_rowid in boolean);
74
75 procedure drop_chunks(task_name in varchar2);
76
77
78 -- Individual Chunk retrieval and processing Procedures
79 procedure get_rowid_chunk(task_name in varchar2,
80 chunk_id out number,
81 start_rowid out rowid,
82 end_rowid out rowid,
83 any_rows out boolean);
84
85 procedure get_number_col_chunk(task_name in varchar2,
86 chunk_id out number,
87 start_id out number,
88 end_id out number,
89 any_rows out boolean);
90
91 procedure set_chunk_status(task_name in varchar2,
92 chunk_id in number,
93 status in number,
94 err_num in number default null,
95 err_msg in varchar2 default null);
96
97 procedure purge_processed_chunks(task_name in varchar2);
98
99
100 -- Task Status Retrieval Procesure
101 function task_status(task_name in varchar2) return number;
102
103
104 -- Parallel Execution procedure: run, stop, resume
105 procedure run_task(
106 task_name in varchar2,
107 sql_stmt in clob,
108 language_flag in number,
109 edition in varchar2 default NULL,
110 apply_crossedition_trigger in varchar2 default NULL,
111 fire_apply_trigger in boolean default TRUE,
112 parallel_level in number default 0,
113 job_class in varchar2 default 'DEFAULT_JOB_CLASS');
114
115 procedure resume_task(
116 task_name in varchar2,
117 sql_stmt in clob,
118 language_flag in number,
119 edition in varchar2 default NULL,
120 apply_crossedition_trigger in varchar2 default NULL,
121 fire_apply_trigger in boolean default TRUE,
122 parallel_level in number default 0,
123 job_class in varchar2 default 'DEFAULT_JOB_CLASS',
124 force in boolean default FALSE);
125
126 procedure resume_task(task_name in varchar2,
127 force in boolean default FALSE);
128
129 procedure stop_task(task_name in varchar2);
130
131
132 -- CUSTOMER SHOULD NOT use this one.
133 -- This is an internal routine for parallel execution.
134 procedure run_internal_worker(task_name in varchar2,
135 job_name in varchar2);
136
137
138 -- Administrative Procedure
139 -- All of the following subroutines requires ADM_PARALLEL_EXECUTE role.
140 procedure adm_drop_task(task_owner in varchar2,
141 task_name in varchar2);
142
143 procedure adm_drop_chunks(task_owner in varchar2,
144 task_name in varchar2);
145
146 function adm_task_status(task_owner in varchar2,
147 task_name in varchar2) return number;
148
149 procedure adm_stop_task(task_owner in varchar2,
150 task_name in varchar2);
151
152 end;