Native Web Services and Collection of Records

Hi
I want to use XMLDB Native Web Services but one of my requirements is for the web service to pass in to Oracle a collection of records as a input parameter to the stored procedure.
What is the best way to achieve this with Native Web Services ? A couple of options I can think of below, are there any others ?
1. Create a stored procedure with an IN parameter defined as CLOB or XMLTYPE (which is best, does DBNWS work with XMLTYPE ?) and structure the XSD/XML to contain the required record structure. See below
CREATE OR REPLACE PROCEDURE test_using_xml (
p_xmlin IN XMLTYPE,
p_xmlout OUT XMLTYPE) AS
BEGIN
BLAH, BLAH, BLAH;
END;
2. Define TYPES as below
CREATE OR REPLACE TYPE MEMBER_REC AS OBJECT
(FIRST_NAME VARCHAR2(10),
LAST_NAME VARCHAR2(10));
CREATE OR REPLACE TYPE MEMBER_TAB AS TABLE OF MEMBER_REC;
CREATE OR REPLACE TYPE MEMBER_TAB_OBJ AS OBJECT (DUMMY MEMBER_TAB);
CREATE OR REPLACE PROCEDURE get_quote (
p_members IN MEMBER_TAB_OBJ) AS
BEGIN
NULL;
END;
Thanks

This is what we ended up using, creating complex object types. Seems to work quite well. The object also is effective your SOA Contract which is quite nice.
The generated WSDL is reasonably straight forward and logical apart from a few naming quirks.
CREATE OR REPLACE TYPE MEMBER_REC_IN AS OBJECT
(PERSON_NUMBER CHAR(2),
RELATIONSHIP_CODE CHAR(1),
FIRST_NAME VARCHAR2(10),
LAST_NAME VARCHAR2(10),
GENDER CHAR(1),
DATE_OF_BIRTH DATE);
CREATE OR REPLACE TYPE MEMBER_REC_OUT AS OBJECT
(PERSON_NUMBER CHAR(2),
API NUMBER);
CREATE OR REPLACE TYPE MEMBER_TAB_IN AS TABLE OF MEMBER_REC_IN;
CREATE OR REPLACE TYPE MEMBER_TAB_OUT AS TABLE OF MEMBER_REC_OUT;
CREATE OR REPLACE TYPE GET_QUOTE_SUBMIT_OBJ AS OBJECT (MESSAGE_GUID VARCHAR2(2000),
EFFECTIVE_DATE DATE,
PRODUCT_CODE VARCHAR2(12),
GROUP_ID VARCHAR2(12),
ADDRESS_LINE1 VARCHAR2(50),
ADDRESS_LINE2 VARCHAR2(50),
CITY VARCHAR2(50),
COUNTRY VARCHAR2(50),
POSTCODE VARCHAR2(10),
FAMILY MEMBER_TAB_IN);
CREATE OR REPLACE TYPE GET_QUOTE_RESPONSE_OBJ AS OBJECT (MESSAGE_GUID VARCHAR2(2000),
QUOTE_NUMBER NUMBER,
API NUMBER,
FAMILY MEMBER_TAB_OUT,
RESULT_CODE NUMBER,
RESULT_DESCRIPTION VARCHAR2(2000));
CREATE OR REPLACE PROCEDURE get_quote (
p_quote_in IN GET_QUOTE_SUBMIT_OBJ,
p_quote_out OUT GET_QUOTE_RESPONSE_OBJ) AS
BEGIN
-- Initiliase the record
p_quote_out := GET_QUOTE_RESPONSE_OBJ(NULL,NULL,NULL,MEMBER_TAB_OUT(),NULL,NULL);
p_quote_out.message_guid := p_quote_in.message_guid;
p_quote_out.quote_number := 123456;
p_quote_out.api := 999.99;
-- Loop thru the members passed in
FOR idx IN 1..p_quote_in.family.count LOOP
-- Extend the array
p_quote_out.family.EXTEND(1);
-- Initiliase the record
p_quote_out.family(idx) := MEMBER_REC_OUT(NULL,NULL);
p_quote_out.family(idx).person_number := p_quote_in.family(idx).person_number;
p_quote_out.family(idx).api := idx * 100;
END LOOP;
p_quote_out.result_code := 0;
p_quote_out.result_description := 'test';
END;
/

Similar Messages

  • Pl/Sql web service and collections not working

    Hello
    I'm trying to create a web service from a function in a package which returns a collection. The creation of the web service and its deployment seem to work correctly. I do get the following warning :
    WARNING: OWS-00077 The Value Type class: pxWsLang.PamLanguagerecordBase does not have a valid JAVA Bean pattern
    but I don't think this is the source of the problem.
    When I try to test the web service using the endpoint in the wsdl I get the following answer in the browser:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:Server</faultcode><faultstring>Error creating target: pxWsLang.WsLangUser</faultstring><faultactor></faultactor></env:Fault></env:Body></env:Envelope>
    In the DOS window for the OC4J I get the following error :
    2006-11-15 09:21:25.852 ERROR OWS-04005 An error occurred for port: {http://pxWs
    Lang/WsLang.wsdl}wsLangSoapHttpPort: javax.xml.rpc.JAXRPCException: Error creati
    ng target: pxWsLang.WsLangUser.
    The PL/SQL code is as follows :
    Object:
    CREATE OR REPLACE TYPE PAM_LanguageRecord as OBJECT
    NR NUMBER(3),
    SYMBOL VARCHAR2(2)
    Collection:
    CREATE OR REPLACE Type PAM_LanguageTable as Table of PAM_LanguageRecord;
    Package body :
    create or replace package body PAM_TEST is
    function CursorTest return Pam_LanguageTable is
    Res_LangTable PAM_LanguageTable;
    cursor cur is select * from stc_languages;
    begin
    Res_LangTable := new PAM_LanguageTable();
    for Rec in cur loop
    Res_LangTable.Extend(1);
    Res_LangTable(cur%ROWCOUNT) := new PAM_LanguageRecord
    (Rec.NR,
    Rec.SYMBOL
    end loop;
    Return Res_LangTable;
    end;
    end;
    I'm using JDeveloper version 10.1.3.1.0.3984
    How can I get this to work ? (without using Apache Axis or other tools :-)
    Is it supposed to work ?
    Many Thanks
    Paul

    Hi,
    for the "error creating target" problem I found the solution here:
    [WS from a PL/SQL package]: Error creating target
    Hope this helps.
    Regards,
    Patrik

  • Database native web services and RAC

    The Readme in the database documentation library says :
    Database native web services used in an Oracle RAC configuration are not supported.
    Is this restriction still there for the latest release (the one which was just announced for windows)?
    Why does this restriction exist? Any plans to change this in future releases?
    What does "not supported" means? It simply doesn't work at all, or you can make it work, but Oracle Support won't help you if there are problems with it?

    Yes, unsupported means use at your own risk. Oracle hasn't "approved" what you are doing, so if you run into problems they will not be able to help you.

  • Problem with Native Web Services and %ROWTYPE

    Hi,
    I have a simple stand-alone function which takes a varchar2 IN argument, uses the IN argument to retrieve data from a single table, and returns the data as TableName%rowtype.
    Accessing the generated WSDL from a browser using http://host:port/orawsv/FUNCTION?wsdl results in the following :
    <?xml version="1.0" ?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <soap:Fault>
    <faultcode>soap:Client</faultcode>
    <faultstring>Error processing input</faultstring>
    <detail>
    <OracleErrors xmlns="http://xmlns.oracle.com/orawsv/faults">
    </OracleErrors>
    </detail>
    </soap:Fault>
    </soap:Body>
    </soap:Envelope>
    I can see a successfully generated WSDL for a similar function which returns XMLType
    Is %rowtype supported as a return argument ?
    And on a related note, is ref cursor supported as a return argument in a stored procedure ?
    Thanks,
    Pete
    PS - version details as follows ...
    "BANNER"
    "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production"
    "PL/SQL Release 11.2.0.1.0 - Production"
    "CORE     11.2.0.1.0     Production"
    "TNS for Linux: Version 11.2.0.1.0 - Production"
    "NLSRTL Version 11.2.0.1.0 - Production"
    Edited by: user13046122 on 31-Aug-2012 01:48

    It appears that %ROWTPYE is not supported directly, and that we need to create a TYPE to wrap the return data
    Thanks to Marc Thompson for the details (http://marc-on-oracle.blogspot.co.uk/2007/12/11g-database-installation-and-native.html)
    PD

  • How to return multiple record with Oracle Native Web Service?

    Dear all,
    I would like to know that the oracle native web service can be able to return multiple records to client or not?
    I successfully developed the oracle native web service for returning single record but the next challenge is to develop web service in order to return multiple record (like Employees data base on each department)
    Thank and Regards,
    Zenoni

    I successfully developed the oracle native web service for returning single record but the next challenge is to develop web service in order to return multiple record (like Employees data base on each department)You could return a list (multiple values/records) in XML format (using XMLType or CLOB), or CSV, or JSON, or whatever.
    function get_employees (p_department_id in number) return clob
    as
    begin
      return 'your_xml_string_here';
    end get_employees;It would be up to the client (the caller of the web service) to extract the values from whatever format you decide upon, of course.
    - Morten
    http://ora-00001.blogspot.com

  • Oracle 11g native web services

    Is there any formal explanation about how to configure and create Oracle 11g native web services and how to correctly secure these services? Since Oracle APEX now supports consumption of SOAP and REST web services, it makes sense to have more explanation about creating and securing web services. As many PL/SQL programmers know, it is always not an easy job to develop web services in jDeveloper to work with databases - with all those add-on technologies like jPublisher/Toplink to get tiny things work. It is not easy to find the "how-to" guide about creating and securing Oracle 11g native web services.
    Thanks.
    Andy

    Thanks for the link Tim...it is very useful. I was told that, in APEX 4.2, it will become able to create RESTful web services through APEX - if you run APEX through APEX Listener - by using resource templates in APEX Listener. I will wait for more information about this feature to come out.
    Thanks.
    Andy

  • XDB Native Web Services - Collection of object types

    Hello,
    my DB 11g (11.1.0.6.0) is enabled to use XDB Native Web Services, everything works as it should. I already use it successfully to publish a web service with object types as OUT parameter. They are created as complex types in the XML response as described here: [http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb_web_services.htm#CHDGBFID]
    But what I need is a collection of these object types, e.g.
    I have a type FLIGHT with some information elements (departure, arrival, date, time, price) and I have a web service function GET_AVAILABILITY with parameters departure, arrival and date. What I want is to return a collection of FLIGHT objects, it could be none, one or many flights for a request.
    For the moment I create another object type which contains a fix number of FLIGHT objects to work around the collection issue:
    create flight_tab_typ as object (
    fl1 flight_typ
    ,fl2 flight_typ
    ,fl3 flight_typ
    I tried to build a PL/SQL table of object type and also a VARRAY of object type but for both the WSDL of the web service cannot be build up correctly in the web browser. For me it seems that this is not supported by the Native Web Services.
    I know I can build up my own XMLTYPE with XML structure as OUT parameter but to use object types is much easier and it builds up the XML structure automatically.
    Does anybody know how to use collections (VARRAY or PL/SQL Tables) with the Native XML DB Web Services?
    Thanks,
    Andreas

    Hi flea,
    I use complex types with XDB native webservices. Here is an example. Using people/groups objects. I haven't compiled this so there may be some typos etc, but it should give you the idea.
    Beware!I have had problems with the created WSDL file in that it doesn't always include the namespace from all types. In many client packages ( JDevloper , SOAPUI etc) this causes a wsdl import failure.
    You can add the missing namespace by hand a load the WSDL file locally and then it should work. I haven't raised an SR with Oracle about this yet.
    Assume you create the following under SCoTT schema on machine host.com on port 8080.
    The webservice[WSDL] will be available from
    http://host.com:8080/orawsv/SCOTT/WEBSERVCIES/GET_GROUP[?wsdl]
    For other peoples sanity it took me a little while to realise the WSDL url is case specific. E.g. the schema, package and functions have to be UPPER case.
    create table people_groups_tab (group_name varchar2(40 char),first_name varchar2(40 char),last_name varchar2(40 char))
    insert into people_groups_tab values ('FINANCE','Joe','Bloggs')
    insert into people_groups_tab values ('FINANCE','Bob','Jones')
    insert into people_groups_tab values ('IT','Alan','Andrews')
    create or replace type person_obj
    as object
         first_name people_groups_tab.first_name%type
         ,last_name people_groups_tab.last_name%type
    create or replace type people_obj
    as table of person_obj
    create or replace type people_groups_obj
    as object
    group_name varchar2(40 char)
    people people_obj
    create or replace package webservices
    as
              function get_group
         p_group_name varchar2
              ) return people_groups_obj;
    end;
    create or replace package body webservices
    as
              function get_group
         p_group_name varchar2
              ) return people_groups_obj
    as
    l_group people_groups_obj;
              l_people people_obj;
    begin
              select person_obj
                        first_name
                        ,last_name
              bulk collect into l_people
              from people_groups_tab
              where group_name p_group_name;
              l_group := people_groups_obj(p_group_name,l_people);
              return l_group;
    end;
    end;
    /

  • Creating PL/SQL web services from PL/SQL records

    Hello
    Jdeveloper does not allow to create web services from pl/sql packages that use PL/SQL records.to do this,we have to use the jpublisher ?without using the jpublisher,if we create a webservice then the following error is displayed in the web service xml output file.
    <faultstring>Internal Server Error (Caught exception while handling request: java.rmi.RemoteException: java.sql.SQLException: ORA-06550: line 1, column 49: PLS-00181: unsupported preprocessor directive '$WS_SP_EVEN' )</faultstring>
    </env:Fault>
    Could any one suggest me, how to solve the above issue..?
    Regards
    Malathi

    Thank you, with db adapter it was working and also
    pl/sql web-services working successfully with object types.If we want to send the web-services to the client, do we need to send the entire folder that is created in the web-services folder of the external oc4j..?
    Creating the client process:
    we are using the wsdl file that is generated in the web-services and adding to the partner link to Invoke the operations of web-services. Is there any other way to invoke the webservices?Could any one please suggest me?
    Thanking you
    Malathi

  • 11g Native Web Services Core Dump ( qmuwsPrintPackWSDL() )

    I know that native PL/SQL web services are newer functionality, but I have not been able to find any information on the following issue on MetaLink or here on the forums. When creating 11g native web services when attempting to retrieve the WSDL documents from the server the document is only partially served (estimated at about 2/3rds) or not at all (blank document returned).
    Banner: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    The alert log gains this entry:
    <msg time='2009-03-30T13:23:21.843-04:00' org_id='oracle' comp_id='rdbms'
    client_id='' type='UNKNOWN' level='16'
    host_id='TEST_HOST1' host_addr='10.38.11.20' module=''
    pid='16144'>
    <txt>Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x98] [PC:0x37FAE2B, _qmuwsPrintPackWSDL()+1031]
    </txt>
    </msg>
    <msg time='2009-03-30T13:23:21.906-04:00' org_id='oracle' comp_id='rdbms'
    msg_id='1205222838' type='INCIDENT_ERROR' group='Access Violation'
    level='1' host_id='TEST_HOST1' host_addr='10.38.11.20'
    prob_key='ORA 7445 [qmuwsPrintPackWSDL()+1031]' upstream_comp='' downstream_comp=''
    ecid='' errid='62733' detail_path='c:\app\diag\rdbms\orcl\orcl\trace\orcl_s001_16144.trc'>
    <txt>Errors in file c:\app\diag\rdbms\orcl\orcl\trace\orcl_s001_16144.trc  (incident=62733):
    ORA-07445: exception encountered: core dump [qmuwsPrintPackWSDL()+1031] [ACCESS_VIOLATION] [ADDR:0x98] [PC:0x37FAE2B] [UNABLE_TO_READ] []
    </txt>
    </msg>
    <msg time='2009-03-30T13:23:21.953-04:00' org_id='oracle' comp_id='rdbms'
    msg_id='dbgexProcessError:1094:3370026720' type='TRACE' level='16'
    host_id='TEST_HOST1' host_addr='10.38.11.20'>
    <txt>Incident details in: c:\app\diag\rdbms\orcl\orcl\incident\incdir_62733\orcl_s001_16144_i62733.trc
    </txt>
    </msg>
    <msg time='2009-03-30T13:23:23.250-04:00' org_id='oracle' comp_id='rdbms'
    client_id='' type='UNKNOWN' level='16'
    host_id='TEST_HOST1' host_addr='10.38.11.20' module=''
    pid='3120'>
    <txt>Trace dumping is performing id=[cdmp_20090330132323]
    </txt>
    </msg>
    <msg time='2009-03-30T13:23:26.093-04:00' org_id='oracle' comp_id='rdbms'
    msg_id='dbgrimswi_sweep_incident:1855:4220681759' type='ERROR' group='ami_comp'
    level='8' host_id='TEST_HOST1' host_addr='10.38.11.20'>
    <txt>Sweep Incident[62733]: completed
    </txt>
    </msg>
    <msg time='2009-03-30T13:23:44.500-04:00' org_id='oracle' comp_id='rdbms'
    client_id='' type='UNKNOWN' level='16'
    host_id='TEST_HOST1' host_addr='10.38.11.20' module=''
    pid='6724'>
    <txt>found dead shared server &apos;S001&apos;, pid = (19, 3)
    </txt>
    </msg>The trace files contain the following:
    Trace file c:\app\diag\rdbms\orcl\orcl\trace\orcl_s001_16144.trc
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Windows NT Version V5.2 Service Pack 2
    CPU                 : 16 - type 586, 4 Physical Cores
    Process Affinity    : 0x00000000
    Memory (Avail/Total): Ph:10902M/24571M, Ph+PgF:8218M/26299M, VA:349M/2047M
    Instance name: orcl
    Redo thread mounted by this instance: 1
    Oracle process number: 19
    Windows thread id: 16144, image: ORACLE.EXE (S001)
    *** 2009-03-30 13:23:21.828
    *** SESSION ID:(129.4177) 2009-03-30 13:23:21.828
    *** CLIENT ID:() 2009-03-30 13:23:21.828
    *** SERVICE NAME:(SYS$USERS) 2009-03-30 13:23:21.828
    *** MODULE NAME:() 2009-03-30 13:23:21.828
    *** ACTION NAME:() 2009-03-30 13:23:21.828
    Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x98] [PC:0x37FAE2B, _qmuwsPrintPackWSDL()+1031]
    Incident 62733 created, dump file: c:\app\diag\rdbms\orcl\orcl\incident\incdir_62733\orcl_s001_16144_i62733.trc
    ORA-07445: exception encountered: core dump [qmuwsPrintPackWSDL()+1031] [ACCESS_VIOLATION] [ADDR:0x98] [PC:0x37FAE2B] [UNABLE_TO_READ] []I am at a loss on quickly resolving this issue. I will be attempting to find a solution via an SR, but I am not sure how responsive that will be. Any help is appreciated.
    SR Number: 7504349.992

    Quick test for 11.1.0.7.0 (linux_x64) does not show a problem
    SQL> connect sys/oracle as sysdba
    Connected.
    SQL> --
    SQL> def USERNAME=WEB_API
    SQL> --
    SQL> def PASSWORD=WEB_API
    SQL> --
    SQL> DROP USER &USERNAME CASCADE
      2  /
    old   1: DROP USER &USERNAME CASCADE
    new   1: DROP USER WEB_API CASCADE
    DROP USER WEB_API CASCADE
    ERROR at line 1:
    ORA-01918: user 'WEB_API' does not exist
    SQL> grant connect, resource to &USERNAME identified by &PASSWORD
      2  /
    old   1: grant connect, resource to &USERNAME identified by &PASSWORD
    new   1: grant connect, resource to WEB_API identified by WEB_API
    Grant succeeded.
    SQL> begin
      2    dbms_network_acl_admin.drop_acl('localhost.xml');
      3  end;
      4  /
    begin
    ERROR at line 1:
    ORA-31001: Invalid resource handle or path name "/sys/acls/localhost.xml"
    ORA-06512: at "XDB.DBMS_XDB", line 337
    ORA-06512: at "SYS.DBMS_NETWORK_ACL_ADMIN", line 428
    ORA-06512: at line 2
    SQL> begin
      2    dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for 127.0.0.1', '&USERNAME', true, 'connect');
      3    dbms_network_acl_admin.assign_acl('localhost.xml', '127.0.0.1');
      4  end;
      5  /
    old   2:   dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for 127.0.0.1', '&USERNAME', true, 'connect');
    new   2:   dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for 127.0.0.1', 'WEB_API', true, 'connect');
    PL/SQL procedure successfully completed.
    SQL> COMMIT
      2  /
    Commit complete.
    SQL> GRANT XDB_WEBSERVICES TO &USERNAME
      2  /
    old   1: GRANT XDB_WEBSERVICES TO &USERNAME
    new   1: GRANT XDB_WEBSERVICES TO WEB_API
    Grant succeeded.
    SQL> GRANT XDB_WEBSERVICES_OVER_HTTP TO &USERNAME
      2  /
    old   1: GRANT XDB_WEBSERVICES_OVER_HTTP TO &USERNAME
    new   1: GRANT XDB_WEBSERVICES_OVER_HTTP TO WEB_API
    Grant succeeded.
    SQL> connect &USERNAME/&PASSWORD
    Connected.
    SQL> --
    SQL> var url varchar2(700)
    SQL> --
    SQL> set pages 0 long 10000
    SQL> --
    SQL>
    SQL> CREATE OR REPLACE TYPE ACCOUNT_O AS OBJECT
      2  (
      3     ACCOUNT_ID              NUMBER(9, 0),
      4     ACCOUNT_NUMBER          VARCHAR2(100),
      5     ACCOUNT_NAME            VARCHAR2(50),
      6     ACTIVE                  NUMBER(1, 0),
      7     DEACTIVE_DATE           DATE,
      8     START_DATE              DATE,
      9     END_DATE                DATE,
    10     ROLLOVER_ACCOUNT_NUMBER VARCHAR2(100),
    11     ROLLOVER_ACCOUNT_NAME   VARCHAR2(50),
    12     ROLLOVER_SPEED_CODE     VARCHAR2(10),
    13     LAST_UPDATE_DATE        DATE
    14  )
    15  /
    Type created.
    SQL> CREATE OR REPLACE TYPE ACCOUNT_SK AS OBJECT( ACCOUNT_ID NUMBER(38) )
      2  /
    Type created.
    SQL> CREATE OR REPLACE PACKAGE ACCOUNT_API AS
      2     FUNCTION "NEW"(ACCOUNT_ID              NUMBER,
      3                    ACCOUNT_NUMBER          VARCHAR2,
      4                    ACCOUNT_NAME            VARCHAR2 DEFAULT NULL,
      5                    ACTIVE                  NUMBER DEFAULT NULL,
      6                    DEACTIVE_DATE           DATE DEFAULT NULL,
      7                    START_DATE              DATE DEFAULT NULL,
      8                    END_DATE                DATE DEFAULT NULL,
      9                    ROLLOVER_ACCOUNT_NUMBER VARCHAR2 DEFAULT NULL,
    10                    ROLLOVER_ACCOUNT_NAME   VARCHAR2 DEFAULT NULL,
    11                    ROLLOVER_SPEED_CODE     VARCHAR2 DEFAULT NULL,
    12                    LAST_UPDATE_DATE        DATE DEFAULT NULL)
    13        RETURN ACCOUNT_SK;
    14     PROCEDURE "UPDATE"(ACCOUNT_ID              NUMBER,
    15                        ACCOUNT_NUMBER          VARCHAR2,
    16                        ACCOUNT_NAME            VARCHAR2 DEFAULT NULL,
    17                        ACTIVE                  NUMBER DEFAULT NULL,
    18                        DEACTIVE_DATE           DATE DEFAULT NULL,
    19                        START_DATE              DATE DEFAULT NULL,
    20                        END_DATE                DATE DEFAULT NULL,
    21                        ROLLOVER_ACCOUNT_NUMBER VARCHAR2 DEFAULT NULL,
    22                        ROLLOVER_ACCOUNT_NAME   VARCHAR2 DEFAULT NULL,
    23                        ROLLOVER_SPEED_CODE     VARCHAR2 DEFAULT NULL,
    24                        LAST_UPDATE_DATE        DATE DEFAULT NULL);
    25     PROCEDURE "DELETE"(ACCOUNT_ID NUMBER);
    26     FUNCTION "GET"(ACCOUNT_ID NUMBER) RETURN ACCOUNT_O;
    27  END ACCOUNT_API;
    28  /
    Package created.
    SQL> BEGIN
      2    :url :=   'http://&USERNAME:&[email protected]:' || dbms_xdb.getHttpPort() || '/orawsv/&USERNAME/ACCOUNT_API';
      3  end;
      4  /
    old   2:   :url :=   'http://&USERNAME:&[email protected]:' || dbms_xdb.getHttpPort() || '/orawsv/&USERNAME/ACCOUNT_API';
    new   2:   :url :=   'http://WEB_API:[email protected]:' || dbms_xdb.getHttpPort() || '/orawsv/WEB_API/ACCOUNT_API';
    PL/SQL procedure successfully completed.
    SQL> print url
    http://WEB_API:[email protected]:80/orawsv/WEB_API/ACCOUNT_API
    SQL> --
    SQL> select  httpuritype( :url || '?wsdl' ).getXML() from dual
      2  /
    <definitions name="ACCOUNT_API" targetNamespace="http://xmlns.oracle.com/orawsv/
    WEB_API/ACCOUNT_API" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://
    xmlns.oracle.com/orawsv/WEB_API/ACCOUNT_API" xmlns:xsd="http://www.w3.org/2001/X
    MLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
      <types>
        <xsd:schema targetNamespace="http://xmlns.oracle.com/orawsv/WEB_API/ACCOUNT_
    API" elementFormDefault="qualified">
          <xsd:element name="UPDATEInput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="START_DATE-DATE-IN" minOccurs="0" maxOccurs="1" t
    ype="xsd:date"/>
                <xsd:element name="ROLLOVER_SPEED_CODE-VARCHAR2-IN" minOccurs="0" ma
    xOccurs="1" type="xsd:string"/>
                <xsd:element name="ROLLOVER_ACCOUNT_NUMBER-VARCHAR2-IN" minOccurs="0
    " maxOccurs="1" type="xsd:string"/>
                <xsd:element name="ROLLOVER_ACCOUNT_NAME-VARCHAR2-IN" minOccurs="0"
    maxOccurs="1" type="xsd:string"/>
                <xsd:element name="LAST_UPDATE_DATE-DATE-IN" minOccurs="0" maxOccurs
    ="1" type="xsd:date"/>
                <xsd:element name="END_DATE-DATE-IN" minOccurs="0" maxOccurs="1" typ
    e="xsd:date"/>
                <xsd:element name="DEACTIVE_DATE-DATE-IN" minOccurs="0" maxOccurs="1
    " type="xsd:date"/>
                <xsd:element name="ACTIVE-NUMBER-IN" minOccurs="0" maxOccurs="1" typ
    e="xsd:double"/>
                <xsd:element name="ACCOUNT_NUMBER-VARCHAR2-IN" type="xsd:string"/>
                <xsd:element name="ACCOUNT_NAME-VARCHAR2-IN" minOccurs="0" maxOccurs
    ="1" type="xsd:string"/>
                <xsd:element name="ACCOUNT_ID-NUMBER-IN" type="xsd:double"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="UPDATEOutput">
            <xsd:complexType>
              <xsd:sequence>
                </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="CACCOUNT_SK-NEWInput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="START_DATE-DATE-IN" minOccurs="0" maxOccurs="1" t
    ype="xsd:date"/>
                <xsd:element name="ROLLOVER_SPEED_CODE-VARCHAR2-IN" minOccurs="0" ma
    xOccurs="1" type="xsd:string"/>
                <xsd:element name="ROLLOVER_ACCOUNT_NUMBER-VARCHAR2-IN" minOccurs="0
    " maxOccurs="1" type="xsd:string"/>
                <xsd:element name="ROLLOVER_ACCOUNT_NAME-VARCHAR2-IN" minOccurs="0"
    maxOccurs="1" type="xsd:string"/>
                <xsd:element name="LAST_UPDATE_DATE-DATE-IN" minOccurs="0" maxOccurs
    ="1" type="xsd:date"/>
                <xsd:element name="END_DATE-DATE-IN" minOccurs="0" maxOccurs="1" typ
    e="xsd:date"/>
                <xsd:element name="DEACTIVE_DATE-DATE-IN" minOccurs="0" maxOccurs="1
    " type="xsd:date"/>
                <xsd:element name="ACTIVE-NUMBER-IN" minOccurs="0" maxOccurs="1" typ
    e="xsd:double"/>
                <xsd:element name="ACCOUNT_NUMBER-VARCHAR2-IN" type="xsd:string"/>
                <xsd:element name="ACCOUNT_NAME-VARCHAR2-IN" minOccurs="0" maxOccurs
    ="1" type="xsd:string"/>
                <xsd:element name="ACCOUNT_ID-NUMBER-IN" type="xsd:double"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="NEWOutput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="RETURN" type="tns:ACCOUNT_SKType"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="CACCOUNT_O-GETInput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="ACCOUNT_ID-NUMBER-IN" type="xsd:double"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="GETOutput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="RETURN" type="tns:ACCOUNT_OType"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="DELETEInput">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="ACCOUNT_ID-NUMBER-IN" type="xsd:double"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="DELETEOutput">
            <xsd:complexType>
              <xsd:sequence>
                </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:complexType name="ACCOUNT_SKType">
            <xsd:sequence>
              <xsd:element name="ACCOUNT_SK">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="ACCOUNT_ID" type="xsd:double"/>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
          <xsd:complexType name="ACCOUNT_OType">
            <xsd:sequence>
              <xsd:element name="ACCOUNT_O">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="ACCOUNT_ID" type="xsd:double"/>
                    <xsd:element name="ACCOUNT_NUMBER">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:maxLength value="100"/>
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name="ACCOUNT_NAME">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:maxLength value="50"/>
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name="ACTIVE" type="xsd:double"/>
                    <xsd:element name="DEACTIVE_DATE" type="xsd:date"/>
                    <xsd:element name="START_DATE" type="xsd:date"/>
                    <xsd:element name="END_DATE" type="xsd:date"/>
                    <xsd:element name="ROLLOVER_ACCOUNT_NUMBER">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:maxLength value="100"/>
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name="ROLLOVER_ACCOUNT_NAME">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:maxLength value="50"/>
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name="ROLLOVER_SPEED_CODE">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:maxLength value="10"/>
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name="LAST_UPDATE_DATE" type="xsd:date"/>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:schema>
      </types>
      <message name="UPDATEInputMessage">
        <part name="parameters" element="tns:UPDATEInput"/>
      </message>
      <message name="UPDATEOutputMessage">
        <part name="parameters" element="tns:UPDATEOutput"/>
      </message>
      <message name="NEWInputMessage">
        <part name="parameters" element="tns:CACCOUNT_SK-NEWInput"/>
      </message>
      <message name="NEWOutputMessage">
        <part name="parameters" element="tns:NEWOutput"/>
      </message>
      <message name="GETInputMessage">
        <part name="parameters" element="tns:CACCOUNT_O-GETInput"/>
      </message>
      <message name="GETOutputMessage">
        <part name="parameters" element="tns:GETOutput"/>
      </message>
      <message name="DELETEInputMessage">
        <part name="parameters" element="tns:DELETEInput"/>
      </message>
      <message name="DELETEOutputMessage">
        <part name="parameters" element="tns:DELETEOutput"/>
      </message>
      <portType name="ACCOUNT_APIPortType">
        <operation name="UPDATE">
          <input message="tns:UPDATEInputMessage"/>
          <output message="tns:UPDATEOutputMessage"/>
        </operation>
        <operation name="NEW">
          <input message="tns:NEWInputMessage"/>
          <output message="tns:NEWOutputMessage"/>
        </operation>
        <operation name="GET">
          <input message="tns:GETInputMessage"/>
          <output message="tns:GETOutputMessage"/>
        </operation>
        <operation name="DELETE">
          <input message="tns:DELETEInputMessage"/>
          <output message="tns:DELETEOutputMessage"/>
        </operation>
      </portType>
      <binding name="ACCOUNT_APIBinding" type="tns:ACCOUNT_APIPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/ht
    tp"/>
        <operation name="UPDATE">
          <soap:operation soapAction="UPDATE"/>
          <input>
            <soap:body parts="parameters" use="literal"/>
          </input>
          <output>
            <soap:body parts="parameters" use="literal"/>
          </output>
        </operation>
        <operation name="NEW">
          <soap:operation soapAction="NEW"/>
          <input>
            <soap:body parts="parameters" use="literal"/>
          </input>
          <output>
            <soap:body parts="parameters" use="literal"/>
          </output>
        </operation>
        <operation name="GET">
          <soap:operation soapAction="GET"/>
          <input>
            <soap:body parts="parameters" use="literal"/>
          </input>
          <output>
            <soap:body parts="parameters" use="literal"/>
          </output>
        </operation>
        <operation name="DELETE">
          <soap:operation soapAction="DELETE"/>
          <input>
            <soap:body parts="parameters" use="literal"/>
          </input>
          <output>
            <soap:body parts="parameters" use="literal"/>
          </output>
        </operation>
      </binding>
      <service name="ACCOUNT_APIService">
        <documentation>Oracle Web Service</documentation>
        <port name="ACCOUNT_APIPort" binding="tns:ACCOUNT_APIBinding">
          <soap:address location="http://127.0.0.1/orawsv/WEB_API/ACCOUNT_API"/>
        </port>
      </service>
    </definitions>But I think you said it was intermittant

  • Web Service and Oracle HTTP Server

    I have a web environment with Oracle Database 10.2.0.3 , oracle http server (using mod_plsql), Oracle pl/sql web toolkit. I need to create a web service that is accessed externally which will interact with the database (select, insert, delete). Is it possible to publish a web service to the Oracle Http Server or to implement web services with the environment above

    Hello,
    In RDBMS 10g you cannot directly expose WS from the DB you need to use the OracleAS Web Service Runtime to do it, following this documentation:
    - Developing Web Services that Expose Database Resources
    This is true if we are talking about "tooling/runtime/API" but after all Web Services are mainly XML (WSDL and SOAP) so it is still possible to create by hands (PL/SQL & static files) but it is probably a long work depending of the complexity of your services.
    Also, in RDBMS 11, you can now directly expose WS from the DB using the embedded HTTP server, see this Oracle 11g New Features Document
    Note that before taking one approach you must take time to write up your requirement regarding Web Services eg: do I need security, which time of encoding, interoperability, ..., ... For example WS-Security that is the standard to secure SOAP messages is not (yet) supported by the Oracle 11g RDBMS Native Web Services... where when you do use the WS-Runtime you can secure the Web Service..
    Regards
    Tugdual Grall

  • Database Native web services - load balancing,  Instrumentation , security

    Hello –
    I’m proposing use of Database Native web service in our company. Our architects are asking following questions so appreciate your help
    a.     How do you load balance across the DB WS (is there a way to use the F5 to detect downtime and balance the load across the DB servers)? We will be using RAC configuration with 3 nodes.
    b.     Our architect have security concern as user id/password information are in the web service URL, which may prove to be an issue. Is there a way to mitigate this risk?
    c.     Instrumentation in this approach (db native services) is questionable due to development/auto gen of the service logic from the DB itself. We may investigate wrapping the services with OSB to give us an additional instrumentation, policy enforcement, endpoint mediation and security proxy. Thoughts??
    d.     Architect are curious regarding any potential performance issues this may have on the DB server.
    Thanks

    Hi
    We've recently begun using Native Web Services, intending to roll out this approach across the enterprise, but we've encountered 2 significant problems so far, which you may want to consider before proceeding ...
    1. NWS returns an exception if the underlying PL/SQL returns a null value - even if the PL/SQL has completed successfully, and null is a legitimate return value (see SR 3-6201969101 - it contains simple instructions to recreate the problem)
    (I raised it in this forum but there were no replies - SOAP Fault when returning null from a Native Web Service Stored Procedure
    2. The sequence of values returned in the NWS response message is the opposite to the sequence declared in the auto-generated wsdl - i.e. schema validation will fail (see SR 3-6209016991 - it also contains simple instructions to replicate)
    We have coded a workaround for problem 1. where we return <EMPTY> in place of null, and check for it in the client, but without proper resolution we're not prepared to use NWS elsewhere
    As a workaround for problem 2. we removed schema validation, again not ideal
    Both SRs were escalated 9 days ago, but are still outstanding
    Incidentally our database is 11.2.0.1, but I've tested on 11.2.0.3 and both problems are still present
    We also wrap the NWS services using an OSB Proxy Service, and came across the same security issue that you describe (b) - to provide the credentials required for the NWS, simply create a Service Account (containing the credentials) inside OSB and attach it to the Business Service which invokes the NWS (http://docs.oracle.com/cd/E17904_01/doc.1111/e15867/service_accounts.htm)
    HTH

  • Native Web Services - Java client

    Hi.
    Is there any example of how to consume a Native Web Service (11g) using a java client? I am having a trouble with this, and I couldn't find any clue so far.
    I've been using NetBeans.
    Any help would be appreciated.
    Thanks

    I have tried using Axis2. Created the Stub from the WSDL.
    Code:
    import com.oracle.xmlns.orawsv.bi_demo.filial_cotacao.FILIAL_COTACAOServiceStub;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.transport.http.HTTPConstants;
    import org.apache.axis2.transport.http.HttpTransportProperties;
    class FILIAL_COTACAO {
    public void filialCOTACAO(){
    try { // Call Web Service Operation
    FILIAL_COTACAOServiceStub stub = new FILIAL_COTACAOServiceStub();
    Options options = stub._getServiceClient().getOptions();
    HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
    auth.setPreemptiveAuthentication(true);
    auth.setPassword("bi_demo");
    auth.setUsername("bi_demo");
    options.setProperty(HTTPConstants.AUTHENTICATE,auth);
    FILIAL_COTACAOServiceStub.SVARCHAR2FILIAL_COTACAOInput dados = new
    FILIAL_COTACAOServiceStub.SVARCHAR2FILIAL_COTACAOInput();
    FILIAL_COTACAOServiceStub.FILIAL_COTACAOOutput resp = new FILIAL_COTACAOServiceStub.FILIAL_COTACAOOutput();
    String user = "TESTE";
    dados.setUSUARIO$VARCHAR2IN(user);
    resp = stub.fILIAL_COTACAO(dados);
    System.out.println("Resposta " + resp.getRETURN());
    System.out.println("TESTE");
    } catch (Throwable e1) {e1.printStackTrace();}
    public static void main(String[] args) throws Exception {
    FILIAL_COTACAO t = new FILIAL_COTACAO();
    t.filialCOTACAO();
    But it returns me:
    [INFO] Deploying module: metadataExchange-1.5.1 - file:/Users/CInglez/MSV/NetBeansProjects/FILIAL_COTACAO_Axis/dist/lib/mex-1.5.1.jar
    org.apache.axiom.soap.SOAPProcessingException: Only Characters are allowed here
         at org.apache.axiom.soap.impl.builder.SOAP11BuilderHelper.processText(SOAP11BuilderHelper.java:153)
         at org.apache.axiom.soap.impl.builder.SOAP11BuilderHelper.handleEvent(SOAP11BuilderHelper.java:63)
         at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:390)
         at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:227)
         at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:196)
         at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:207)
         at org.apache.axiom.om.impl.llom.OMElementImpl.buildNext(OMElementImpl.java:664)
         at org.apache.axiom.om.impl.llom.OMNodeImpl.getNextOMSibling(OMNodeImpl.java:141)
         at org.apache.axiom.om.impl.traverse.OMChildrenQNameIterator.findNextElementWithQName(OMChildrenQNameIterator.java:96)
         at org.apache.axiom.om.impl.traverse.OMChildrenQNameIterator.<init>(OMChildrenQNameIterator.java:53)
         at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstChildWithName(OMElementImpl.java:270)
         at org.apache.axiom.soap.impl.llom.soap11.SOAP11FaultImpl.getCode(SOAP11FaultImpl.java:124)
         at org.apache.axis2.AxisFault.initializeValues(AxisFault.java:202)
         at org.apache.axis2.AxisFault.<init>(AxisFault.java:196)
         at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:435)
         at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
         at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
         at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
         at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
         at com.oracle.xmlns.orawsv.bi_demo.filial_cotacao.FILIAL_COTACAOServiceStub.fILIAL_COTACAO(FILIAL_COTACAOServiceStub.java:181)
         at FILIAL_COTACAO.filialCOTACAO(FILIAL_COTACAO.java:56)
         at FILIAL_COTACAO.main(FILIAL_COTACAO.java:68)
    Any clues?
    Thanks

  • Web Services and the Portal

    Are there any versions of the portal that have native support for communications to Web Services? Is it going to be eventually possible to dynamically discover channels via a discovery method like UDDI?

    Currently no, in the next release we have preliminary support for web services and there might be web services provider but eventually no time frame yet we do plan to support UDDI ..

  • Native web service - min occurs restriction of fields

    Greetings,
    I'm using native web services to expose a store procedure as a web service. The store procedure uses an object as an input parameter as I need to expose a complex nested structure. However all the fields from that object as exposed as mandatory in the generated WSDL file as no min-max occurs restriction is applied.
    My question is, is there any way to modify that generated web service in order to set some of those fields as optional? (the generated xsd should have a min occurs = 0 restriction for those fields).
    Thanks in advance.

    Hi,
    Actually, I have a table with three columns and four rows.
    My webservice's response is a list of users containing four informations for each user (login, name, email and division). Each information is binding to one case of the second column.
    For example if the list is :
    first response
    User1 = apink, alex pink, apink@..., 5
    User2 = tblue, tony blue, tblue@..., 5
    My table will look like this :
    column one | column two | column three
    apink
    alex pink
    apink@...
    5
    tblue
    tony blue
    tblue@...
    5
    which is what i want. But I want that if I call the web service again with a different parameter a new table will be created and the old will be still here like this :
    second response
    User1 = kvarsen, Kyle varsen, kvarsen@..., 5
    User2 = someone, some one, sone@..., 5
    column one | column two | column three
    apink
    alex pink
    apink@...
    5
    tblue
    tony blue
    tblue@...
    5
    column one | column two | column three
    kvarsen
    kyle varsen
    kvarsen@...
    5
    someone
    some one
    sone@...
    5
    I hope to have been clear.
    Thanks for your help

  • Deploying a VB dll using some web service and accessing it through java

    I'm new to Web Services Based Programming. I would like to know whether this is possible and if so has anyone tried it. I want to create a vb dll that contains the remote methods that the client will access from a java program. After going thru a lot of articles, I'm still unsure on how to do this. I found one method was to Create a VB program/dll, deploy it in a web service and create the java program that accesses by another web service.
    I'm doing this as part of my lab syllabus. The thing is My lab exercises do not state anything about the technologies that I can use to do this.
    This is all that is stated there:-
    Creation Of DLL Using VB And Deploy it in Java
    I just cant get any ideas other than deploying both the parts as web services. If anyone has Better ideas for this, I would really appreciate it.
    I dont know anything about CORBA for languages other than Java and I'm already using the servlets and EJB's in my normal life. I'm also learning the ORB based programming in java. Therefore your help will probably help me learn something new then what I know.

    Sorry I wasn't too specific in my last question.
    This is my java class calling the native method print
    //HeyWorld.java
    class HeyWorld {
    private native void print();
    public static void main(String[] args) {
    new HeyWorld().print();
    static {
    System.loadLibrary("HeyWorld");
    In this case, my C method for calling a C++ method: HelloWorld.cpp
    #include "jni.h"
    #include "stdio.h"
    #include "stdafx.h"
    #Include "HeyWorld.h" //this is where i get my function prototype
    #include "Test.h" //this is the C++ header where the print method and the Test class is
    JNIEXPORT void JNICALL
    Java_HeyWorld_print(JNIEnv *env, jobject obj)
    CTest a; //CTest is the print class I created
    a.print();
    //This is the header for Test.h
    class CTest: public CWinApp
    public:
         CTest(); //constructor
         void print(); //our method
    //And this is the implementation of the class Test.cpp
    void CTest::print()
         printf("Hey World!\n");
         return ;
    I could compile the Test.cpp, HeyWorld.cpp successfully. However when I tried to compile HeyWorld.cpp using
    cl -I<path of jdk include> -I<path of jdk include win32> -LD HeyWorld.cpp -FeHeyWorld.dll,
    the VC++ 6.0 compiler gave me this error:
    HeyWorld.obj:error LNK2001: unresolved external symbol "public:_thiscall CTest::CTest(void)"
    HeyWorld.obj:error LNK2001: unresolved external symbol "public:_thiscall CTest::print(void)"
    Thanks for the help.

Maybe you are looking for

  • How can I copy SQL results to different csv worksheets in the same workbook

    Hi all, I'm running a series of select statements using SQLPlus and I want the results for each statement to be copied to different worksheets within the same workbook. For example, this is what I want: 'select statement 1' is run and spooled to file

  • I can no longer see the mail icon on my iphone 4.

    I restored the software but it isn't there.

  • ABAP webservices using XIF adapter in SAP CRM?

    Hi, We are going to invoke SAP CRM objects web services via SOAP. Do I need a J2EE engine? Can't I do it with ABAP engine? Without J2EE engine is it difficult to figure out the details of WSDLs to use? If so how.. Thanks, Vijay Edited by: Vijay Mudiv

  • I need help with someone's problem?

    Originally from Yahoo Answers. I'm empty! "Why does my mac keep putting all the settings back to defult? I got an older mac today, and supoivily they cant glitch, but yet some freaking how, whenever I personalize the background or ANYTHING even the n

  • Text is slowing down Motion work flow

    I've been having a problem with text in Motion 3 for awhile now, but it's gotten a lot worse all of a sudden. Lately, when I work with text, navigating around the different menus and adjusting the size/tracking/leading/color/etc. of a single word is