Jump to: navigation, search

Difference between revisions of "EclipseLink/Examples/DBWS/DBWSComplexArgStoredFunction"

Line 10: Line 10:
 
The use-case for this example is the creation of a Web service that exposes a simple Stored Function containing complex PL/SQL arguments.  
 
The use-case for this example is the creation of a Web service that exposes a simple Stored Function containing complex PL/SQL arguments.  
  
The following stored function will be used for this example:
+
The following stored function will be used for this example: <source lang="sql" enclose="div">
<source lang="sql" enclose="div">
+
 
DROP FUNCTION F1;
 
DROP FUNCTION F1;
 
FUNCTION F1(OLDREC IN ARECORD, FOO IN VARCHAR2) RETURN ARECORD IS arec ARECORD;
 
FUNCTION F1(OLDREC IN ARECORD, FOO IN VARCHAR2) RETURN ARECORD IS arec ARECORD;
Line 22: Line 21:
 
</source>
 
</source>
 
   
 
   
Where type <code>ARECORD</code> is:
+
Where type <code>ARECORD</code> is: <source lang="sql" enclose="div">
<source lang="sql" enclose="div">
+
 
TYPE TBL1 IS TABLE OF VARCHAR2(111) INDEX BY BINARY_INTEGER;
 
TYPE TBL1 IS TABLE OF VARCHAR2(111) INDEX BY BINARY_INTEGER;
 
TYPE TBL2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
 
TYPE TBL2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
Line 33: Line 31:
 
</source>  
 
</source>  
  
The <tt>DBWSBuilder</tt> utility requires a DBWS configuration file as input.  
+
The <tt>DBWSBuilder</tt> utility requires a DBWS configuration file as input. <source lang="xml" enclose="div">
<source lang="xml" enclose="div">
+
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
<dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Revision as of 10:16, 10 June 2011


EclipseLink DBWS Service based on Stored Function with complex PL/SQL arguments

The use-case for this example is the creation of a Web service that exposes a simple Stored Function containing complex PL/SQL arguments.

The following stored function will be used for this example:
DROP FUNCTION F1;
FUNCTION F1(OLDREC IN ARECORD, FOO IN VARCHAR2) RETURN ARECORD IS arec ARECORD;
  BEGIN
    arec.T1 := OLDREC.T1;
    arec.T2 := OLDREC.T2;
    arec.T3 := OLDREC.T3;
    RETURN arec;
  END F1;
Where type ARECORD is:
TYPE TBL1 IS TABLE OF VARCHAR2(111) INDEX BY BINARY_INTEGER;
TYPE TBL2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
TYPE ARECORD IS RECORD (
  T1 TBL1,
  T2 TBL2,
  T3 BOOLEAN
);
The DBWSBuilder utility requires a DBWS configuration file as input.
<?xml version="1.0" encoding="UTF-8"?>
<dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <properties>
    <property name="projectName">testPLSQLFunction</property>
    ... database properties
  </properties>
  <plsql-procedure
   name="plsqlfunction"
   catalogPattern="SOMEPACKAGE"
   procedurePattern="F1%"
   returnType="SOMEPACKAGE_ARECORD"
 />
</dbws-builder>
prompt > dbwsbuilder.cmd -builderFile dbws-builder.xml -stageDir output_directory -packageAs wls testPLSQLFunction.war

where

  • dbws-builder.xml is the DBWS builder XML file above
  • output_directory is the output directory for the generated files
  • -packageAs specifies the platform on which the web service will be deployed