DBA Data[Home] [Help]

PACKAGE: CTXSYS.DRIUTL

Source


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;