DBA Data[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;