1 package driutl as
2
3 /*-------------------------------- get_dbid --------------------------------*/
4 /*
5 NAME
6 get_dbid - get database identifier
7 DESCRIPTION
8 returns a number which is unique to the database (in OPS, there are
9 multiple databases sharing a disk)
10 */
11 function get_dbid return number;
12 -- pragma restrict_references ( get_dbid, WNDS );
13
14 /*--------------------------- parse_object_name ----------------------------*/
15 /* parse object name user.name */
16
17 procedure parse_object_name(
18 spec in varchar2,
19 uname in out varchar2,
20 oname in out varchar2
21 );
22
23 /*----------------------------- split_list --------------------------------*/
24 /*
25 NAME
26 split_list -
27
28 DESCRIPTION
29 A list can be contiguous or non-contiguous.
30
31 list=1,500, contiguous=1 is a contig. list
32 list=1,4,5,6 contiguous=0 is a non-contig list
33
34 if we required 20 in the first list, it will be splited into:
35 lower_list=1,20
36 upper_list=21,500
37
38 if we required 2 in the second list, it will be splited into:
39 lower_list=1,4
40 upper_list=5,6
41
42 ARGUMENTS
43 list (in) the list
44 contiguous (in) 1= contig. 0=non-contig
45 size_required (in) list length
46 lower_list (out) lower list after splited
47 upper_list (out) upper list after splited
48
49 NOTES
50 None
51 EXCEPTIONS
52
53 RETURNS
54 none
55 */
56
57 procedure split_list(
58 list in varchar2,
59 contiguous in number,
60 size_required in number,
61 lower_list out varchar2,
62 upper_list out varchar2
63 );
64
65
66 /*-------------------------------- split -----------------------------------*/
67 /*
68 NAME
69 split
70
71 DESCRIPTION
72 Takes a list of values separated by a delimiter and return a
73 array containing the values. a delimiter character preceded
74 by a backslash will be treated as part of the value instead.
75
76 ARGUMENTS
77 vlist - list of values
78 delimiter - the delimiter, one character only
79 varr - array of values
80
81 NOTES
82
83 EXCEPTIONS
84
85 RETURNS
86 */
87 PROCEDURE split(
88 vlist in varchar2
89 , delimiter in varchar2
90 , varr in out dr_def.vc256_tab
91 );
92
93 /*---------------------------------- genid ---------------------------------*/
94 /*
95 NAME
96 genid - generate an TexTile dictionary id number
97 DESCRIPTION
98 TexTile dict. id number is used to assigned to INDEX or PREFERENCE.
99
100 ARGUMENTS
101 None
102 NOTES
103
104 EXCEPTIONS
105
106 RETURNS
107 id number
108 */
109 function genid return number;
110
111
112 /*---------------------------- pkey_toolong ---------------------------------*/
113 /*
114 NAME
115 pkey_toolong - check a length of a given primary key is too long or not
116 DESCRIPTION
117 as pkey can be an encoded composite pkey string, the checking need to be
118 done on the overall length and the individual textkey length
119
120 ARGUMENTS
121 pk -- primary key string
122 NOTES
123
124 EXCEPTIONS
125
126 RETURNS
127 toolong boolean
128 */
129 function pkey_toolong(pk in varchar2) return boolean;
130
131
132 /*---------------------------- get_user ------------------------------*/
133 /*
134 NAME
135 get_user - get the effective user
136
137 DESCRIPTION
138 returns the user name of user who directly calls CTXSYS.(DR_% or
139 (CTX_%)
140
141 e.g.
142 USER_B has CTXAPP priv, USER_A does not. USER_B grants execute on
143 proc2 to USER_A.
144
145 USER_A.proc1 -> USER_B.proc2 -> CTXSYS.(DR_% or CTX_%)
146
147 the effective user is USER_B, not USER_A.
148
149 Must call get_user to return the effective user to be passed to
150 DRIACC.CAN
151
152 ARGUMENTS
153
154 NOTES
155
156 EXCEPTIONS
157 */
158 function get_user(ignore_anon in boolean default FALSE) return varchar2;
159
160 /*---------------------------- get_user_id ---------------------------*/
161 /*
162 NAME
163 get_user_id - get user# from sys.user$
164 */
165 function get_user_id(p_username in varchar2) return number;
166
167 /*---------------------------- get_user_name ---------------------------*/
168 /* opposite of get_user_id */
169
170 function get_user_name(p_userid in binary_integer) return varchar2;
171
172 /*---------------------------- get_obj_id ---------------------------*/
173 /*
174 NAME
175 get_obj_id - get obj# from sys.obj$
176 */
177 function get_obj_id(p_user_name in varchar2, p_object_name in varchar2,
178 p_partition_name in varchar2 default NULL)
179 return number;
180
181 /*---------------------------- is_ops ------------------------------*/
182 /*
183 NAME
184 is_ops
185
186 DESCRIPTION
187 returns TRUE when running in parallel server mode, FALSE otherwise
188 ARGUMENTS
189
190 NOTES
191
192 EXCEPTIONS
193 */
194 function is_ops return boolean;
195
196 /*---------------------------- mem_to_number --------------------------*/
197 /*
198 NAME
199 mem_to_number
200
201 DESCRIPTION
202 Converts inputs like 1k, 10G, 12M to their approriate value in bytes
203 ARGUMENTS
204 memstring - Input string, may be a number or one of these formats:
205 10K, 10M, 10G
206 llimit - Lower limit to the number that memstring can represent
207 ulimit - Upper limit to the number that memstring can represent
208 NOTES
209
210 EXCEPTIONS
211 Throw an error if memstring doesn't lie in range (llimit, ulimit)
212 */
213 function mem_to_number(memstring in varchar2, llimit in number,
214 ulimit in number)
215 return number;
216
217 /*---------------------------- idxmem_to_number --------------------------*/
218 /*
219 NAME
220 idxmem_to_number
221
222 DESCRIPTION
223 a bit more specialized -- this converts an idxmem string to a number.
224 if passed null it will return DEFAULT_INDEX_MEMORY.
225
226 ARGUMENTS
227
228 NOTES
229
230 EXCEPTIONS
231 */
232 function idxmem_to_number(memstring in varchar2) return number;
233
234 /*---------------------------- syncmem_to_number --------------------------*/
235 /*
236 NAME
237 syncmem_to_number
238
239 DESCRIPTION
240 a bit more specialized -- this converts an syncmem string to a number.
241 if passed null it will return idexmem.
242
243 ARGUMENTS
244
245 NOTES
246
247 EXCEPTIONS
248 */
249 function syncmem_to_number(memstring in varchar2,
250 idxmem in number)
251 return number;
252
253 /*--------------------------- make_pfx ------------------------------------*/
254 /*
255 NAME
256 make_pfx
257
258 DESCRIPTION
259 create propre index prefix
260
261 ARGUMENTS
262
263 NOTES
264
265 EXCEPTIONS
266 */
267
268 FUNCTION make_pfx (idx_owner in varchar2, idx_name in varchar2,
269 pfx_type in varchar2 default '$',
270 part_id in number default null,
271 constraint_pfx in boolean default FALSE)
272 return varchar2;
273
274 /*--------------------------- check_language -----------------------------*/
275 /*
276 NAME
277 check_language
278
279 DESCRIPTION
280 check a string to ensure it is a valid NLS language value
281 returns NLS version of language name and abbreviation
282
283 ARGUMENTS
284
285 NOTES
286
287 EXCEPTIONS
288 */
289
290 FUNCTION check_language (
291 lang in varchar2,
292 nls_lang out varchar2,
293 nls_abb out varchar2,
294 def_ok in boolean default TRUE
295 ) return boolean;
296
297 /*--------------------------- lang_to_abbr -----------------------------*/
298 /*
299 NAME
300 lang_to_abbr
301
302 DESCRIPTION
303 given an NLS language name, return the NLS abbreviation
304
305 ARGUMENTS
306
307 NOTES
308 callable from SQL.
309 Must be a valid language, in uppercase.
310 if lang is unknown, then NULL is returned.
311 EXCEPTIONS
312 */
313
314 FUNCTION lang_to_abbr (
315 lang in varchar2
316 ) return varchar2;
317 pragma restrict_references (lang_to_abbr, wnds, wnps, rnds, rnps);
318
319 /*---------------------------- keycomp_ok ----------------------------------*/
320 /* test database, return TRUE if key compressed indexes are enabled */
321
322 FUNCTION keycomp_ok return BOOLEAN;
323
324 /*---------------------- verify_np_index_tables ----------------------------*/
325
326 PROCEDURE verify_np_index_tables (
327 idx_owner in varchar2,
328 idx_name in varchar2,
329 idx_id in number,
330 idx_pid in number
331 );
332
333 /*--------------------------- get_slave_id --------------------------------*/
334
335 PROCEDURE get_slave_id(
336 slaveid out varchar2
337 );
338
339 /*--------------------------- get_default_prefname ----------------------*/
340 /* finding the default value by given the name of default preference */
341 FUNCTION get_default_value(
342 defname in varchar2
343 ) return varchar2;
344
345 /*---------------------------- bytestr -------------------------------*/
346 /* return a byte amount in readble form */
347
348 function bytestr (a in number) return varchar2;
349
350 /*---------------------------- numstr ---------------------------------*/
351 /* return a large number in readable form */
352
353 function numstr (a in number) return varchar2;
354
355 /*---------------------------- pctstr ---------------------------------*/
356 /* calculate and return a percentage in readable form */
357
358 function pctstr (fig in number, base in number, rnd in number default 2)
359 return varchar2;
360
361 /*---------------------------- NormalizeObjectName --------------------------*/
362 /* Normalize a name by stripping quotes and upper casing. */
363
364 DO_NOT_VALIDATE_SQL_NAME constant number := 0;
365 CHECK_QUALIFIED_SQL_NAME constant number := 1;
366
367 function NormalizeObjectName
368 (
369 object_name in varchar2,
370 validation in number default DO_NOT_VALIDATE_SQL_NAME
371 ) return varchar2;
372
373 procedure lock_index(idxid in number);
374
375 procedure lock_partition(idxid in number, ixpid in number);
376
377 /* ---------------------------- validate_storage ----------------------*/
378 /* Added for bug 7425113. Validates the supplied storage clause string
379 * and raises errors for suspect values (such as embedded comments) which
380 * could be signs of potential SQL injection. If there are no errors
381 * then storage_clause is returned unchanged.
382 */
383 function validate_storage(clause_value in varchar2,
384 clause_name in varchar2)
385 return varchar2;
386
387 /*--------------------------- get_hash_area_size ---------------------------*/
388 function get_hash_area_size return number;
389 procedure set_hash_area_size(hashmem in number);
390
391 /*------------------------- CheckNumLangIndSLXSW --------------------------*/
392 /* This function checks the number of remaining language independent sublexers
393 * and stopwords in the index.
394 */
395 FUNCTION CheckNumLangIndSLXSW(
396 idx_id in number
397 ) return number;
398
399 /*---------------------------- get_ctx_doc_polstem --------------------------*/
400 /* get _ctx_doc_policy_stems parameter for this instance */
401 function get_ctx_doc_polstems
402 return boolean;
403
404 /*------------------------------ is_decimal_value --------------------------*/
405 /* Is this number a decimal value or not ? */
406 function is_decimal_value(value number)
407 return boolean;
408
409 /*---------------------------- is_shadow_index --------------------------*/
410 /* check if index being refered to is a shadow index */
411 function is_shadow_index(idx_name varchar2)
412 return boolean;
413
414 /*---------------------------- parse_shadow_index --------------------------*/
415 /* parse shadow index to get index id and partition id */
416 procedure parse_shadow_index(rio_idx_name in varchar2,
417 idx_id in out number,
418 idx_suffix in out varchar2
419 );
420
421 /*---------------------------- get_shadow_index --------------------------*/
422 /* get shadow index given base index id */
423 function get_shadow_index(idx_name in varchar2,
424 idx_suffix in varchar2
425 )
426 return varchar2;
427
428 end driutl;