DBA Data[Home] [Help]

PACKAGE BODY: SYS.UTL_DBWS

Source


1 package body utl_dbws is
2 
3  --- Forward Declarations ---
4 
5  function invoke_proxy return VARCHAR2;
6  function invoke_proxy(request SYS.XMLTYPE) return SYS.XMLTYPE;
7  function create_service_proxy(wsdl_Document_Location VARCHAR2, service_Name VARCHAR2) return SERVICE;
8  function get_services_proxy(wsdl_Document_Location VARCHAR2) RETURN VARCHAR2;
9  function get_ports_proxy(service_Handle SERVICE) RETURN VARCHAR2;
10  function get_operations_proxy(service_Handle SERVICE, port QNAME) RETURN VARCHAR2;
11  function get_return_proxy(call_Handle CALL) RETURN VARCHAR2;
12  function get_in_parameters_proxy(call_Handle CALL) RETURN VARCHAR2;
13  function get_out_parameters_proxy(call_Handle CALL) RETURN VARCHAR2;
14  procedure set_call(call_Handle CALL);
15  function output_values(call_Handle CALL) return VARCHAR2;
16 
17  function split_string(s VARCHAR2) RETURN QNAME_LIST;
18  function get_any(ch VARCHAR2) RETURN ANYDATA;
19  function get_char RETURN VARCHAR2;
20  function get_number RETURN NUMBER;
21  function get_raw RETURN RAW;
22  function get_date RETURN DATE;
23  function get_timestamp RETURN TIMESTAMP;
24  function get_timestamp_tz RETURN TIMESTAMP WITH TIME ZONE;
25  function get_timestamp_ltz RETURN TIMESTAMP WITH LOCAL TIME ZONE;
26  function get_boolean RETURN NUMBER;
27  function get_byte RETURN NUMBER;
28  function get_short RETURN NUMBER;
29  function get_integer RETURN NUMBER;
30  function get_long RETURN NUMBER;
31  function get_float RETURN NUMBER;
32  function get_double RETURN NUMBER;
33  function get_clob RETURN CLOB;
34  function get_blob RETURN BLOB;
35  function get_bfile RETURN BFILE;
36  function get_rowid RETURN ROWID;
37  function get_xmltype RETURN XMLTYPE;
38 
39  procedure set_any(obj ANYDATA);
40  procedure set_null;
41  procedure set_null(c VARCHAR2);
42  procedure set_char(c VARCHAR2);
43  procedure set_number(n NUMBER);
44  procedure set_raw(r RAW);
45  procedure set_date(d DATE);
46  procedure set_boolean(b NUMBER);
47  procedure set_blob(b BLOB);
48  procedure set_clob(c CLOB);
49  procedure set_bfile(b BFILE);
50  procedure set_rowid(r ROWID);
51  procedure set_timestamp(d TIMESTAMP);
52  procedure set_timestamp_tz(d TIMESTAMP WITH TIME ZONE);
53  procedure set_timestamp_ltz(d TIMESTAMP WITH LOCAL TIME ZONE);
54  procedure set_xmltype(x XMLTYPE);
55 
56  --- End Forward Declarations ---
57 
58 
59  -------------------------------------------
60  -------------------------------------------
61  ---                                     ---
62  --- Handling of qualified names (QName) ---
63  ---                                     ---
64  -------------------------------------------
65  -------------------------------------------
66 
67  -- Construct a qualified name
68  --   namespaceURI - Namespace URI for the QName, null if none.
69  --      localPart - Local part of the QName
70  function to_QName(name_Space VARCHAR2, name VARCHAR2) RETURN QNAME IS
71  BEGIN
72    if name_Space IS NULL or name_Space = ''
73       then return name;
74    elsif name_Space = 'xsd' OR name_Space = 'NSURI_SCHEMA_XSD'
75       then return '{http://www.w3.org/2001/XMLSchema}' || name;
76    elsif name_Space = 'xsi' OR name_Space = 'NSURI_SCHEMA_XSI'
77       then return '{http://www.w3.org/2001/XMLSchema-instance}' || name;
78    elsif name_Space = 'soapenc' OR name_Space = 'NSURI_SOAP_ENCODING'
79       then return '{http://schemas.xmlsoap.org/soap/encoding/}' || name;
80    elsif name_Space = 'soapenv' OR name_Space = 'NSURI_SOAP_ENVELOPE'
81       then return '{http://schemas.xmlsoap.org/soap/envelope/}' || name;
82    elsif name_Space = 'NSURI_SOAP_NEXT_ACTOR'
83       then return '{http://schemas.xmlsoap.org/soap/actor/next}' || name;
84    else
85       return '{' || name_Space || '}' || name;
86    end if;
87  END to_QName;
88 
89  -- Return the namespace URI of a qualified name, null if none.
90  function get_namespace_URI(name QNAME) RETURN VARCHAR2 IS
91    pos INTEGER;
92  BEGIN
93    pos := INSTR(name, '}');
94    if pos = 0
95       then return null;
96       else return SUBSTR(name,2,pos-1);
97    end if;
98  END get_namespace_URI;
99 
100  -- Return the local part of a qualified name
101  function get_local_part(name QNAME) RETURN VARCHAR2 IS
102    pos INTEGER;
103  BEGIN
104    pos := INSTR(name, '}');
105    if pos = 0
106       then return name;
107       else return SUBSTR(name,pos+1);
108    end if;
109  END get_local_part;
110 
111  -- The following is a list of predefined namespaces that may be
112  -- used in the nameSpace parameter of to_QName
113  -- 'NSURI_SCHEMA_XSD', 'xsd'        - Namespace URI for XML Schema XSD
114  -- 'NSURI_SCHEMA_XSI', 'xsi'        - Namespace URI for XML Schema XSI
115  -- 'NSURI_SOAP_ENCODING', 'soapenc' - Namespace URI for SOAP 1.1 Encoding
116  -- 'NSURI_SOAP_ENVELOPE', 'soapenv' - Namespace URI for SOAP 1.1 Envelope
117  -- 'NSURI_SOAP_NEXT_ACTOR'          - Namespace URI for SOAP 1.1 next actor role
118 
119 
120  -------------------------------------------
121  -------------------------------------------
122  ---                                     ---
123  --- Service instantiation based on WSDL ---
124  ---                                     ---
125  -------------------------------------------
126  -------------------------------------------
127 
128  -- List the qualified names of all the services in a WSDL document
129  --   wsdlDocumentLocation - URL for the WSDL document
130  function get_services(wsdl_Document_Location URITYPE)
131    RETURN QNAME_LIST
132  IS
133  BEGIN
134    return split_string(get_services_proxy(wsdl_Document_Location.GETURL()));
135  END get_services;
136 
137  function get_services_proxy(wsdl_Document_Location VARCHAR2) RETURN VARCHAR2
138  as language java
139     name 'oracle.jpub.runtime.dbws.DbwsProxy.getServices(java.lang.String) return java.lang.String';
140 
141  -- Create a Service instance.
142  --   serviceName - QName for the service
143  --   Returns a handle to the Service instance.
144  function create_service(service_Name QNAME)
145   RETURN SERVICE
146  as language java
147     name 'oracle.jpub.runtime.dbws.DbwsProxy.createService(java.lang.String) return long';
148 
149  -- Create a Service instance.
150  --   wsdlDocumentLocation - URL for the WSDL document location for the service
151  --   serviceName - QName for the service
152  --   Returns a handle to the Service instance.
153  function create_service(wsdl_Document_Location URITYPE, service_Name QNAME)
154   RETURN SERVICE IS
155  BEGIN
156   RETURN create_service_proxy(wsdl_Document_Location.GETURL(), service_Name);
157  END create_service;
158 
159  function create_service_proxy(wsdl_Document_Location VARCHAR2, service_Name VARCHAR2) return SERVICE
160  as language java
161     name 'oracle.jpub.runtime.dbws.DbwsProxy.createService(java.lang.String,java.lang.String) return long';
162 
163 
164  -- Split a string into a list of QNAMES using ";" as separator.
165  --    string - the string to be split
166  function split_string(s VARCHAR2) RETURN QNAME_LIST
167  IS
168    res   QNAME_LIST;
169    pos   INTEGER;
170    idx   BINARY_INTEGER;
171    strg  VARCHAR2(8128);
172  BEGIN
173    strg := s;
174 
175    pos := INSTR(strg,';');
176    idx := 1;
177 
178    while (pos > 0)
179    loop
180      res(idx) := SUBSTR(strg,1,pos-1);
181      idx := idx + 1;
182      strg := SUBSTR(strg,pos+1);
183      pos := INSTR(strg,';');
184    end loop;
185 
186    if strg IS NOT NULL
187       then res(idx) := strg;
188    end if;
189 
190    return res;
191  END split_string;
192 
193  -- Set the proxy address
194  --   proxy - the http proxy address, e.g., www-proxy.us.acme.com:80
195  procedure set_http_proxy(httpProxy VARCHAR2)
196  as language java
197     name 'oracle.jpub.runtime.dbws.DbwsProxy.setHttpProxy(java.lang.String)';
198 
199  -- List the qualified names of all of the ports in a service.
200  --    service_Handle - Service instance whose ports are returned
201  function get_ports(service_Handle SERVICE)
202    RETURN QNAME_LIST
203  IS
204  BEGIN
205    return split_string(get_ports_proxy(service_Handle));
206  END get_ports;
207 
208  function get_ports_proxy(service_Handle SERVICE) RETURN VARCHAR2
209  as language java
210     name 'oracle.jpub.runtime.dbws.DbwsProxy.getPorts(long) return java.lang.String';
211 
212  function get_operations(service_Handle SERVICE, port QNAME)
213    RETURN QNAME_LIST
214  IS
215    res QNAME_LIST;
216  BEGIN
217    return split_string(get_operations_proxy(service_Handle,port));
218    return res;
219  END get_operations;
220 
221  function get_operations_proxy(service_Handle SERVICE, port QNAME) RETURN VARCHAR2
222  as language java
223     name 'oracle.jpub.runtime.dbws.DbwsProxy.getOperations(long,java.lang.String) return java.lang.String';
224 
225 
226  -- Release a particular Service instance. This will implicitly
227  -- release all Call instances that have been created for this
228  -- service instance.
229  --    service_Handle - Service instance that is to be released
230  procedure release_service(service_Handle SERVICE)
231  as language java
232     name 'oracle.jpub.runtime.dbws.DbwsProxy.releaseService(long)';
233 
234  -- Release all Service instances.
235  procedure release_all_services
236  as language java
237     name 'oracle.jpub.runtime.dbws.DbwsProxy.releaseAllServices()';
238 
239 
240  ---------------------------------------------
241  ---------------------------------------------
242  ---                                       ---
243  --- Call instantiation for document style ---
244  ---                                       ---
245  ---------------------------------------------
246  ---------------------------------------------
247 
248  -- Create a Call instance.
249  --   serviceHandle - the service instance that is to be called.
250  function create_call(service_Handle SERVICE) RETURN CALL
251  as language java
252     name 'oracle.jpub.runtime.dbws.DbwsProxy.createCall(long) return long';
253 
254  ---------------------------------------------
255  ---------------------------------------------
256  ---                                       ---
257  --- Call instantiation based on a service ---
258  ---     port and an operation name        ---
259  ---                                       ---
260  ---------------------------------------------
261  ---------------------------------------------
262 
263  -- Create a Call instance.
264  --   serviceHandle - the service instance that is to be called.
265  --   portName - qualified name for the port. Use first port if this is NULL.
266  --   operationName - qualified name for the operation
267  function create_call(service_Handle SERVICE, port_Name QNAME, operation_Name QNAME) RETURN CALL
268  as language java
269     name 'oracle.jpub.runtime.dbws.DbwsProxy.createCall(long,java.lang.String,java.lang.String) return long';
270 
271  -- Release a particular Call instance.
272  --    call_Handle - Call instance that is to be released
273  procedure release_call(call_Handle CALL)
274  as language java
275     name 'oracle.jpub.runtime.dbws.DbwsProxy.releaseCall(long)';
276 
277  -- Set the value of a particular property on a Call.
278  --   callHandle - the instance of the call
279  --   endpoint   - the endpoint for the call
280  procedure set_target_endpoint_address(call_Handle CALL, endpoint VARCHAR2)
281  as language java
282     name 'oracle.jpub.runtime.dbws.DbwsProxy.setTargetEndpointAddress(long,java.lang.String)';
283 
284  -- Manipulation of call properties. The following are supported keys
285  -- and default settings for standard Call properties.
286  --
287  -- Key                 - Explanation of Value, Default value.
288  -- 'USERNAME'          - User name for authentication
289  -- 'PASSWORD'          - Password for authentication
290  -- 'ENCODINGSTYLE_URI' - Encoding style specified as a namespace URI.
291  --                       The default value is the SOAP 1.1 encoding
292  --                       'http://schemas.xmlsoap.org/soap/encoding/'
293  -- 'OPERATION_STYLE'   - Standard property for operation style.
294  --                       Set to 'rpc' if the operation style is rpc;
295  --                       'document' if the operation style is document.
296  -- 'SESSION_MAINTAIN'  - This boolean property is used by a service client to indicate whether or
297  --                       not it wants to participate in a session with a service endpoint.
298  --                       If this property is set to 'true', the service client indicates that it
299  --                       wants the session to be maintained. If set to 'false', the session is
300  --                       not maintained. The default value for this property is 'false'.
301  -- 'SOAPACTION_USE'    - This boolean property indicates whether or not SOAPAction
302  --                       is to be used. The default value of this property is 'false'.
303  -- 'SOAPACTION_URI'    - Indicates the SOAPAction URI if the SOAPACTION_USE property
304  --                       is set to 'true'.
305 
306  -- Return the value of a particular property on a Call.
307  --   callHandle - the instance of the call
308  --   key        - the key for the property
309  --   Returns the value of the property or null if not set.
310  function  get_property(call_Handle CALL, key VARCHAR2) RETURN VARCHAR2
311  as language java
312     name 'oracle.jpub.runtime.dbws.DbwsProxy.getProperty(long,java.lang.String) return java.lang.String';
313 
314  -- Set the value of a particular property on a Call.
315  --   callHandle - the instance of the call
316  --   key        - the key for the property
317  --   value      - the value for the property
318  procedure set_property(call_Handle CALL, key VARCHAR2, value VARCHAR2)
319  as language java
320     name 'oracle.jpub.runtime.dbws.DbwsProxy.setProperty(long,java.lang.String,java.lang.String)';
321 
322  -- Clear the value of a particular property on a Call.
323  --   callHandle - the instance of the call
324  --   key        - the key for the property
325  procedure remove_property(call_Handle CALL, key VARCHAR2)
326  as language java
327     name 'oracle.jpub.runtime.dbws.DbwsProxy.removeProperty(long,java.lang.String,java.lang.String)';
328 
329  -- Return the XML type of the call's return value
330  --   callHandle - the instance of the call
331  function get_return_type(call_Handle CALL) RETURN QNAME IS
332  BEGIN
333    return get_return_proxy(call_Handle);
334  END get_return_type;
335 
336  function get_return_proxy(call_Handle CALL) RETURN VARCHAR2
337  as language java
338     name 'oracle.jpub.runtime.dbws.DbwsProxy.getReturnTypeProxy(long) return java.lang.String';
339 
340  -- Return the XML types of the call's input parameters
341  --   callHandle - the instance of the call
342  function get_in_parameter_types(call_Handle CALL) RETURN QNAME_LIST IS
343  BEGIN
344    return split_string(get_in_parameters_proxy(call_Handle));
345  END get_in_parameter_types;
346 
347  function get_in_parameters_proxy(call_Handle CALL) RETURN VARCHAR2
348  as language java
349     name 'oracle.jpub.runtime.dbws.DbwsProxy.getInParametersProxy(long) return java.lang.String';
350 
351  -- Return the XML types of the call's output parameters
352  --   callHandle - the instance of the call
353  function get_out_parameter_types(call_Handle CALL) RETURN QNAME_LIST IS
354  BEGIN
355    return split_string(get_out_parameters_proxy(call_Handle));
356  END get_out_parameter_types;
357 
358  function get_out_parameters_proxy(call_Handle CALL) RETURN VARCHAR2
359  as language java
360     name 'oracle.jpub.runtime.dbws.DbwsProxy.getOutParametersProxy(long) return java.lang.String';
361 
362  -- Invokes a specific operation using a synchronous request-response
363  -- interaction mode.
364  --   callHandle - the instance of the call
365  --   inputParams - The input parameters for this invocation.
366  --   Returns the return value or null.
367  function invoke(call_Handle CALL, input_Params ANYDATA_LIST) return ANYDATA
368  IS
369    idx BINARY_INTEGER;
370  BEGIN
371    set_call(call_Handle);
372 
373    if input_Params.COUNT != 0
374    then
375      idx := input_Params.FIRST;
376      set_any(input_Params(idx));
377      while idx != input_Params.LAST
378      loop
379        idx := input_Params.NEXT(idx);
380        set_any(input_Params(idx));
381      end loop;
382    end if;
383 
384    return get_any(invoke_proxy);
385  END invoke;
386 
387  function invoke_proxy return VARCHAR2
388  as language java
389     name 'oracle.jpub.runtime.dbws.DbwsProxy.invokeProxy() return java.lang.String';
390 
391 
392  -- Invokes a Document-style webservices in a synchronous
393  -- request-response interaction mode.
394  --   callHandle - the instance of the call
395  --   request - a SOAPElement request
396  --   Returns a SOAPElement response
397  function invoke(call_Handle CALL, request SYS.XMLTYPE) return SYS.XMLTYPE IS
398  BEGIN
399    set_call(call_Handle);
400    return invoke_proxy(request);
401  END invoke;
402 
403  function invoke_proxy (request SYS.XMLTYPE) return SYS.XMLTYPE
404  as language java
405     name 'oracle.jpub.runtime.dbws.DbwsProxy.invokeProxy(oracle.xdb.XMLType) return oracle.xdb.XMLType';
406 
407  -- Obtain the output arguments after a call invocation
408  --   callHandle - the instance of the call
409  --   Returns the output arguments in order.
410  function get_output_values(call_Handle CALL) return ANYDATA_LIST
411  IS
412    res   ANYDATA_LIST;
413    len   INTEGER;
414    cnt   INTEGER;
415    outs  VARCHAR2(4096);
416    ch    VARCHAR2(1);
417  BEGIN
418    cnt := 1;
419    outs := output_values(call_Handle);
420    len := LENGTH(outs);
421    while cnt <= len
422    loop
423      ch := SUBSTR(outs,len,1);
424      res(cnt) := get_any(ch);
425      cnt := cnt+1;
426    end loop;
427    return res;
428  END get_output_values;
429 
430  function get_any(ch VARCHAR2) RETURN ANYDATA IS
431  BEGIN
432    if (ch = null) OR (ch = 'Z')
433       then return NULL;
434    elsif ch = 'N'
435       then return ANYDATA.ConvertNumber(get_number());
436    elsif ch = 'C'
437       then return ANYDATA.ConvertVarchar2(get_char());
438    elsif ch = 'D'
439       then return ANYDATA.ConvertDate(get_date());
440    elsif ch = 'R'
441       then return ANYDATA.ConvertRaw(get_raw());
442    elsif ch = 'B'
443       then return ANYDATA.ConvertBlob(get_blob());
444    elsif ch = 'L'
445       then return ANYDATA.ConvertClob(get_clob());
446    elsif ch = 'F'
447       then return ANYDATA.ConvertBfile(get_bfile());
448 
449    elsif ch = 'Y'
450       then return ANYDATA.ConvertNumber(get_byte());
451    elsif ch = 'S'
452       then return ANYDATA.ConvertNumber(get_short());
453    elsif ch = 'I'
454       then return ANYDATA.ConvertNumber(get_integer());
455    elsif ch = 'G'
456       then return ANYDATA.ConvertNumber(get_long());
457    elsif ch = 'O'
458       then return ANYDATA.ConvertNumber(get_float());
459    elsif ch = 'P'
460       then return ANYDATA.ConvertNumber(get_double());
461 
462    /*
463    elsif ch = 'O'
464       then return ANYDATA.ConvertObject(get_object());
465    elsif ch = '^'
466       then return ANYDATA.ConvertRef(get_ref());
467    elsif ch = '@'
468       then return ANYDATA.ConvertCollection(get_collection());
469    */
470    end if;
471 
472    return NULL; -- Should throw an exception?!
473  END get_any;
474 
475  procedure set_any(obj ANYDATA) IS
476   nr NUMBER;
477   v2 VARCHAR2(32767);
478   de DATE;
479   rw RAW(32767);
480   bb BLOB;
481   cb CLOB;
482   be BFILE;
483   cr CHAR;
484   vr VARCHAR(32767);
485   name VARCHAR2(32767);
486  BEGIN
487    if obj IS NULL
488    then set_null;
489    else
490      name := obj.GetTypeName;
491      if name = 'SYS.NUMBER'
492         then  set_number(obj.accessNumber);
493      elsif name = 'SYS.VARCHAR2'
494         then  set_char(obj.accessVarchar2);
495      elsif name = 'SYS.DATE'
496         then  set_date(obj.accessDate);
497      elsif name = 'SYS.RAW'
498         then  set_raw(obj.accessRaw);
499      elsif name = 'SYS.BLOB'
500         then  set_blob(obj.accessBlob);
501      elsif name = 'SYS.CLOB'
502         then  set_clob(obj.accessClob);
503      elsif name = 'SYS.BFILE'
504         then  set_bfile(obj.accessBfile);
505      elsif name = 'SYS.CHAR'
506         then  set_char(obj.accessChar);
507      elsif name = 'SYS.VARCHAR'
508         then  set_char(obj.accessVarchar);
509      else
510         set_null(name);
511      /*
512      elsif name = <OBJECT>
513        then
514      elsif name = <REF>
515        then
516      elsif name = <COLLECTION>
517        then
518      */
519      end if;
520    end if;
521  END set_any;
522 
523  function output_values(call_Handle CALL) return VARCHAR2
524  as language java
525     name 'oracle.jpub.runtime.dbws.DbwsProxy.outputValues(long) return java.lang.String';
526 
527  -- Set the type of a parameter of a Call.
528  --   callHandle - the instance of the call
529  --   xml_name - the xml name of the parameter type
530  --   q_name - the QNAME for the parameter type
531  --   mode - the ParameterMode mode constant
532  procedure add_parameter(call_Handle CALL, xml_name VARCHAR2, q_name QNAME, p_mode VARCHAR2)
533  as language java
534  name 'oracle.jpub.runtime.dbws.DbwsProxy.addParameter(long,java.lang.String, java.lang.String,java.lang.String)';
535 
536  -- Set the return type of a Call.
537  --   callHandle - the instance of the call
538  --   retType - the qname of the return type
539  procedure set_return_type(call_Handle CALL, ret_type QNAME)
540  as language java
541  name 'oracle.jpub.runtime.dbws.DbwsProxy.setReturnType(long,java.lang.String)';
542 
543 
544  --------------------
545  -- Initialization --
546  --------------------
547 
548  procedure set_call(call_Handle CALL)
549  as language java
550     name 'oracle.jpub.runtime.dbws.DbwsProxy.setCall(long)';
551 
552  -------------
553  -- Setters --
554  -------------
555 
556  procedure set_null
557  as language java
558     name 'oracle.jpub.runtime.dbws.DbwsProxy.setNull()';
559 
560  procedure set_null(c VARCHAR2)
561  as language java
562     name 'oracle.jpub.runtime.dbws.DbwsProxy.setNull(java.lang.String)';
563 
564  procedure set_char(c VARCHAR2)
565  as language java
566     name 'oracle.jpub.runtime.dbws.DbwsProxy.setChar(java.lang.String)';
567 
568  procedure set_number(n NUMBER)
569  as language java
570     name 'oracle.jpub.runtime.dbws.DbwsProxy.setBigDecimal(java.math.BigDecimal)';
571 
572  procedure set_raw(r RAW)
573  as language java
574     name 'oracle.jpub.runtime.dbws.DbwsProxy.setRaw(byte[])';
575 
576  procedure set_date(d DATE)
577  as language java
578     name 'oracle.jpub.runtime.dbws.DbwsProxy.setDate(oracle.sql.DATE)';
579 
580  procedure set_boolean(b NUMBER)
581  as language java
582     name 'oracle.jpub.runtime.dbws.DbwsProxy.setBoolean(int)';
583 
584  procedure set_blob(b BLOB)
585  as language java
586     name 'oracle.jpub.runtime.dbws.DbwsProxy.setBlob(oracle.sql.BLOB)';
587 
588  procedure set_clob(c CLOB)
589  as language java
590     name 'oracle.jpub.runtime.dbws.DbwsProxy.setClob(oracle.sql.CLOB)';
591 
592  procedure set_bfile(b BFILE)
593  as language java
594     name 'oracle.jpub.runtime.dbws.DbwsProxy.setBfile(oracle.sql.BFILE)';
595 
596  procedure set_rowid(r ROWID)
597  as language java
598     name 'oracle.jpub.runtime.dbws.DbwsProxy.setRowid(oracle.sql.ROWID)';
599 
600  procedure set_timestamp(d TIMESTAMP)
601  as language java
602     name 'oracle.jpub.runtime.dbws.DbwsProxy.setTimestamp(oracle.sql.TIMESTAMP)';
603 
604  procedure set_timestamp_tz(d TIMESTAMP WITH TIME ZONE)
605  as language java
606     name 'oracle.jpub.runtime.dbws.DbwsProxy.setTimestampTZ(oracle.sql.TIMESTAMPTZ)';
607 
608  procedure set_timestamp_ltz(d TIMESTAMP WITH LOCAL TIME ZONE)
609  as language java
610     name 'oracle.jpub.runtime.dbws.DbwsProxy.setTimestampLTZ(oracle.sql.TIMESTAMPLTZ)';
611 
612  procedure set_xmltype(x XMLTYPE)
613  as language java
614     name 'oracle.jpub.runtime.dbws.DbwsProxy.setXmltype(oracle.sql.OPAQUE)';
615 
616  -------------
617  -- Getters --
618  -------------
619  function get_char RETURN VARCHAR2
620  as language java
621     name 'oracle.jpub.runtime.dbws.DbwsProxy.getChar() return java.lang.String';
622 
623  function get_number RETURN NUMBER
624  as language java
625     name 'oracle.jpub.runtime.dbws.DbwsProxy.getBigDecimal() return java.math.BigDecimal';
626 
627  function get_raw RETURN RAW
628  as language java
629     name 'oracle.jpub.runtime.dbws.DbwsProxy.getRaw() return byte[]';
630 
631  function get_date RETURN DATE
632  as language java
633     name 'oracle.jpub.runtime.dbws.DbwsProxy.getDate() return oracle.sql.DATE';
634 
635  function get_timestamp RETURN TIMESTAMP
636  as language java
637     name 'oracle.jpub.runtime.dbws.DbwsProxy.getTimestamp() return oracle.sql.TIMESTAMP';
638 
639  function get_timestamp_tz RETURN TIMESTAMP WITH TIME ZONE
640  as language java
641     name 'oracle.jpub.runtime.dbws.DbwsProxy.getTimestampTZ() return oracle.sql.TIMESTAMPTZ';
642 
643  function get_timestamp_ltz RETURN TIMESTAMP WITH LOCAL TIME ZONE
644  as language java
645     name 'oracle.jpub.runtime.dbws.DbwsProxy.getTimestampLTZ() return oracle.sql.TIMESTAMPLTZ';
646 
647  function get_boolean RETURN NUMBER
648  as language java
649     name 'oracle.jpub.runtime.dbws.DbwsProxy.getBoolean() return int';
650 
651  function get_byte RETURN NUMBER
652  as language java
653     name 'oracle.jpub.runtime.dbws.DbwsProxy.getByte() return Byte';
654 
655  function get_short RETURN NUMBER
656  as language java
657     name 'oracle.jpub.runtime.dbws.DbwsProxy.getShort() return Short';
658 
659  function get_integer RETURN NUMBER
660  as language java
661     name 'oracle.jpub.runtime.dbws.DbwsProxy.getInteger() return Integer';
662 
663  function get_long RETURN NUMBER
664  as language java
665     name 'oracle.jpub.runtime.dbws.DbwsProxy.getLong() return Long';
666 
667  function get_float RETURN NUMBER
668  as language java
669     name 'oracle.jpub.runtime.dbws.DbwsProxy.getFloat() return Float';
670 
671  function get_double RETURN NUMBER
672  as language java
673     name 'oracle.jpub.runtime.dbws.DbwsProxy.getDouble() return Double';
674 
675 
676  function get_blob RETURN BLOB
677  as language java
678     name 'oracle.jpub.runtime.dbws.DbwsProxy.getBlob() return oracle.sql.BLOB';
679 
680  function get_clob RETURN CLOB
681  as language java
682     name 'oracle.jpub.runtime.dbws.DbwsProxy.getClob() return oracle.sql.CLOB';
683 
684  function get_bfile RETURN BFILE
685  as language java
686     name 'oracle.jpub.runtime.dbws.DbwsProxy.getBfile() return oracle.sql.BFILE';
687 
688  function get_rowid RETURN ROWID
689  as language java
690     name 'oracle.jpub.runtime.dbws.DbwsProxy.getRowid() return oracle.sql.ROWID';
691 
692  function get_xmltype RETURN XMLTYPE
693  as language java
694     name 'oracle.jpub.runtime.dbws.DbwsProxy.getXmltype() return oracle.sql.OPAQUE';
695 
696  procedure set_logger_level(level VARCHAR2)
697  as language java
698      name 'oracle.jpub.runtime.dbws.DbwsProxy.setLoggerLevel(java.lang.String)';
699 
700 end utl_dbws;