Multiple stored procedure in Database Adapter

Can I manually create the wsdl for database adapter, which can have multiple operations for different stored procedures?
I tried creating a wsdl as -
<definitions
name="CustomAdapter"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/db/"
>
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/" location="DBAdapterOutboundHeader.wsdl"/>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
schemaLocation="myadapter.xsd" />
</schema>
</types>
<message name="args_in_msg_tscp1">
<part name="InputParameters" element="db:InputParametersTSCP1"/>
</message>
<message name="args_in_msg_sample">
<part name="InputParameters" element="db:InputParametersSAMPLE"/>
</message>
<message name="args_out_msg_sample">
<part name="OutputParameters" element="db:OutputParametersSAMPLE"/>
</message>
<portType name="Proc1_ptt">
<operation name="Proc1">
<input message="tns:args_in_msg_tscp1"/>
</operation>
<operation name="Proc2">
<input message="tns:args_in_msg_sample"/>
<output message="tns:args_out_msg_sample"/>
</operation>
</portType>
<binding name="Proc1_binding" type="tns:Proc1_ptt">
<jca:binding />
<operation name="Proc1">
<jca:operation
InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
SchemaName="SYSTEM"
ProcedureName="TSCP1"
>
</jca:operation>
<input>
<jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
</input>
</operation>
<operation name="Proc2">
<jca:operation
InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
SchemaName="SYSTEM"
ProcedureName="MYSAMPLEPROC"
>
</jca:operation>
<input>
<jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
</input>
<output/>
</operation>
</binding>
<service name="Proc1">
<port name="Proc1_pt" binding="tns:Proc1_binding">
<!--Your runtime connection is declared in
J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
These mcf properties here are from your design time connection and
save you from having to edit that file and restart the application server
if eis/DB/System25 is missing.
These mcf properties are safe to remove.-->
<jca:address location="eis/DB/DBConn25" UIConnectionName="System25"
/>
</port>
</service>
<plt:partnerLinkType name="Proc1_plt" >
<plt:role name="Proc1_role" >
<plt:portType name="tns:Proc1_ptt" />
</plt:role>
</plt:partnerLinkType>
</definitions>
Then I copied this wsdl and corresponding xsd to my BPEL process and created a partnerlink for this wsdl.
I added two invoke activities, one for Proc1 operation and other for Proc2 operation.
When I tried testing this BPEL process, the BPEL process manager was invoking only Proc1 operation for both invoke activities and giving me error as-
<Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
<faultcode>null:bindingFault</faultcode>
<faultstring>business exception</faultstring>
<faultactor>cx-fault-actor</faultactor>
<detail>
<code>1400</code>
<summary>file:/D:/Morrisons/OracleProducts/product/Oracle_SOA/bpel/domains/TestPOC/tmp/.bpel_MyAdapterTest_1.0_c564165702d743346cadb68bc5bbb594.tmp/CustomAdapter.wsdl [ Proc1_ptt::Proc1(InputParameters) ] - WSIF JCA Execute of operation 'Proc2' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable. </summary>
<detail> Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 Error Code: 1400</detail>
</detail>
</Fault>
I want to create only one wsdl for all the strored procedures.

Can I manually create the wsdl for database adapter, which can have multiple operations for different stored procedures?
I tried creating a wsdl as -
<definitions
name="CustomAdapter"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/db/"
>
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/" location="DBAdapterOutboundHeader.wsdl"/>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
schemaLocation="myadapter.xsd" />
</schema>
</types>
<message name="args_in_msg_tscp1">
<part name="InputParameters" element="db:InputParametersTSCP1"/>
</message>
<message name="args_in_msg_sample">
<part name="InputParameters" element="db:InputParametersSAMPLE"/>
</message>
<message name="args_out_msg_sample">
<part name="OutputParameters" element="db:OutputParametersSAMPLE"/>
</message>
<portType name="Proc1_ptt">
<operation name="Proc1">
<input message="tns:args_in_msg_tscp1"/>
</operation>
<operation name="Proc2">
<input message="tns:args_in_msg_sample"/>
<output message="tns:args_out_msg_sample"/>
</operation>
</portType>
<binding name="Proc1_binding" type="tns:Proc1_ptt">
<jca:binding />
<operation name="Proc1">
<jca:operation
InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
SchemaName="SYSTEM"
ProcedureName="TSCP1"
>
</jca:operation>
<input>
<jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
</input>
</operation>
<operation name="Proc2">
<jca:operation
InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
SchemaName="SYSTEM"
ProcedureName="MYSAMPLEPROC"
>
</jca:operation>
<input>
<jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
</input>
<output/>
</operation>
</binding>
<service name="Proc1">
<port name="Proc1_pt" binding="tns:Proc1_binding">
<!--Your runtime connection is declared in
J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
These mcf properties here are from your design time connection and
save you from having to edit that file and restart the application server
if eis/DB/System25 is missing.
These mcf properties are safe to remove.-->
<jca:address location="eis/DB/DBConn25" UIConnectionName="System25"
/>
</port>
</service>
<plt:partnerLinkType name="Proc1_plt" >
<plt:role name="Proc1_role" >
<plt:portType name="tns:Proc1_ptt" />
</plt:role>
</plt:partnerLinkType>
</definitions>
Then I copied this wsdl and corresponding xsd to my BPEL process and created a partnerlink for this wsdl.
I added two invoke activities, one for Proc1 operation and other for Proc2 operation.
When I tried testing this BPEL process, the BPEL process manager was invoking only Proc1 operation for both invoke activities and giving me error as-
<Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
<faultcode>null:bindingFault</faultcode>
<faultstring>business exception</faultstring>
<faultactor>cx-fault-actor</faultactor>
<detail>
<code>1400</code>
<summary>file:/D:/Morrisons/OracleProducts/product/Oracle_SOA/bpel/domains/TestPOC/tmp/.bpel_MyAdapterTest_1.0_c564165702d743346cadb68bc5bbb594.tmp/CustomAdapter.wsdl [ Proc1_ptt::Proc1(InputParameters) ] - WSIF JCA Execute of operation 'Proc2' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable. </summary>
<detail> Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 Error Code: 1400</detail>
</detail>
</Fault>
I want to create only one wsdl for all the strored procedures.

Similar Messages

  • How to invoke a stored procedure in database adapter

    Hi All,
    i have created a database adapter which contains a stored procedure, the procedure is merge process,which bring data from another database,
    i have made sure that checking for new records and updating any changes from the source database everything has been taken care in the procedure.
    my question is how to invoke this process, what all process activities need to be associated with the database adapter, to invoke it
    assuming i want to run it every 5 hours,
    any reply would be of great help.
    Regards
    Ananth

    Hi,
    V thanks for you reply, i am v much new to this bpel environment, i tried using invoke but got errors like
    Error(61):
    [Error ORABPEL-10107]: Invalid initial activities
    [Description]: in line 61 of "C:\jdevstudio10134\jdev\mywork\Incremental_refresh\data_incr_refresh\bpel\data_incr_refresh.bpel", Initial activity is invalid. An initial activity must be of a receive or pick activity..
    [Potential fix]: Please re-arrange the BPEL process definition to make sure its initial activity is of a receive or pick activity. (e.g. by adding new receive activity or removing invalid initial activities..
    Error:
    [Error ORABPEL-10063]: missing initial receive activity
    [Description]: in "C:\jdevstudio10134\jdev\mywork\Incremental_refresh\data_incr_refresh\bpel\data_incr_refresh.bpel", there is no receive activity that starts the process.
    [Potential fix]: make sure one of "pick" and "receive" activities have attribute      "createInstance" set to be "yes".
    later i used the service pick, so from pick i am heading to ivoke and later to finally database adapter, but still getting below error
    Error(59):
    [Error ORABPEL-10900]: xml parser error
    [Description]: in line 59 of "file:/C:/jdevstudio10134/jdev/mywork/Incremental_refresh/data_incr_refresh/bpel/data_incr_refresh.bpel", XML parsing failed because file:/C:/jdevstudio10134/jdev/mywork/Incremental_refresh/data_incr_refresh/bpel/data_incr_refresh.bpel<Line 59, Column 19>: XML-24536: (Error) Missing Attribute 'partnerLink'.
    [Potential fix]: Fix the invalid XML.
    Error(59):
    [Error ORABPEL-10900]: xml parser error
    [Description]: in line 59 of "file:/C:/jdevstudio10134/jdev/mywork/Incremental_refresh/data_incr_refresh/bpel/data_incr_refresh.bpel", XML parsing failed because file:/C:/jdevstudio10134/jdev/mywork/Incremental_refresh/data_incr_refresh/bpel/data_incr_refresh.bpel<Line 59, Column 19>: XML-24536: (Error) Missing Attribute 'portType'.
    [Potential fix]: Fix the invalid XML.
    Error(59):
    [Error ORABPEL-10900]: xml parser error
    [Description]: in line 59 of "file:/C:/jdevstudio10134/jdev/mywork/Incremental_refresh/data_incr_refresh/bpel/data_incr_refresh.bpel", XML parsing failed because file:/C:/jdevstudio10134/jdev/mywork/Incremental_refresh/data_incr_refresh/bpel/data_incr_refresh.bpel<Line 59, Column 19>: XML-24536: (Error) Missing Attribute 'operation'.
    [Potential fix]: Fix the invalid XML.

  • How to call multiple stored procedure from same DB Adapter

    Hi,
    I want to invoke 3 stored procedures from my message flow in BUS . I created a DB adapter and invoked 1 successfully . Now I don't to configure 2 other DB adapters for calling other 2 stored procedures . I want some how to be able to call the other 2 from the first DB adapter only . Somehow I need the flexibility to have procedure names as the operation names in 1 wsdl and be able to configure this in JDeveloper for this at time of DB adapter configuration . I am using 11G . Is it possible ?

    You can probably create a DB adapter with operation type selected as Execute Pure SQL and write SQL code to invoke the stored procedures depending on the procedure name (which you can get as one of the parameters of DB Adapter).
    However, Even if you were able to do it, the DB Adapter schemas are generated based on stored procedure parameter list and types. If you use Execute Pure SQL type of DB Adapter the schema will be generated based on the parameters which you are using in your custom SQL code within DB Adapter. Which means that if you want to add a new stored procedure as target which has a different name and different parameters then you will need to regenerate the DB adapter and update your custom SQL code. This also means that you will need to do regression testing interfaces to all stored procedures whenever there is any change in this DBAdapter.
    Now, my question is why do you want to invoke multiple stored procedures from same DB adapter?
    This is not a good way to design integration solutions and makes your services resistance to change as it will take more time to change and test.
    If all that you want is to have a web service which can have different operations for different stored procedures then you should create three business services and create a wrapper proxy service which has one operation for each stored procedure, within the proxy transform and call the correct backend service (you can use operational branch). This way you have a modular code where each module (read interface to one stored procedure) can be independently modified and tested.

  • Multiple stored procedures using JDBC Adopter, Synchronous call

    Hello Guys,
    This is kind of different scenario,
    Here is the scenario (SQL Server -> XI -> Legacy)
    1.I want to trigger stored procedure (from XI to)
    2.Inside the stored procedure we are going to have multiple stored procedures.
    -Inside stored procedures
    SP1 -> It supposed to select the data from interface control table, if that is success
    SP2 -> Call some other stored procedures which can be select/insert/delete from different tables most of the cases it would be select, if that is success
         It should give results back (Response) to XI and with some output parameters like (status message, etc…)
    Next step I want send those results to target system which is legacy. If that is success
    Next step I should update entry in the Interface control table(which is in SQL Server) with success entry like (success message, current date, current time, interface name, username.) 
         If it fails any stage like while selecting data from interface control table which is SP1/ SP2 It should give error message back to XI(output parameters). XI is going to send Alerts/Mails to respective interface owners.
    This is my scenario can anybody help me on this what needs to be done to implement this scenario.

    Hi Murali,
    Anyway , altimately you are going to call one stored procedure and going to get one output. So it will not be a problem I think.
    Anyway it is required to introduce BPM here.
    <i>Next step I want send those results to target system which is legacy. If that is success</i>
    >>>You can make sure that message is recieved by legacy system. Because legacy systems like File systems will not support Application Acknowledgement. So here you can go with Transport Acknowledgement.
    From where will get Success messages like (current date etc) are you planning to take XI system date.. If so you can get this. And you can send the message to SQL.
    <i>If it fails any stage like while selecting data from interface control table which is SP1/ SP2 It should give error message back to XI(output parameters). XI is going to send Alerts/Mails to respective interface owners.</i>
    >>>For application errors like SP2 error etc, you need to get the Error Response from stored procedure itsel.
    Second option is you can go with Adapter Alerting, whenever any error in the Sender JDBC adapter.
    Anyway design/requirement should be perfect, before start the process here...
    Regards,
    Moorthy

  • Multiple Stored Procedures - One at a time

    Hello everyone!
    I´m going to start an interface that requires me to call multiple Stored Procedures, but they will not be called at the same time.
    The legacy system has 3 stored procedures to be called, like this:
    1 - SP number 1: it says to the legacy system that some data is going to come up and clean the previous data
    2 - SP number 2: input data into the legacy system
    3 - SP number 3: for each line above, more lines will be inserted - sort of header/line cenario
    My question is: should I be able to achieve this goal using only PI 'normal' components or will I have to use BPM?
    Thanks!
    Ricardo Sancio Lóra
    Brazil

    Hi Ricardo,
    According to my knowledge not required to use the BPM.
    In that first stored procedure you can call the another stored procedure, internally database can take the all necessary actions.
    Check this links
    http://www.sommarskog.se/share_data.html
    http://bytes.com/topic/sql-server/answers/79780-stored-procedure-calling-another-stored-procedure_
    Regards
    Ramesh

  • Having multiple Stored procedure in a single Business Service in OSB

    Hi,
    Please let me know is it possible to have multiple Stored Procedure inside one business service in OSB.
    Regards,
    Abdul

    Hello Abdul,
    It is not possible to serve multiple stored procedures/functions with one business service because one business service can be based on one adapter only and one DB adapter can interface one DB component only. You may have one stored procedure which internally makes call to all other procedures as per your requirement and from OSB, call this single stored procedure using one business service.
    Regards,
    Anuj

  • Getting result set from stored procedures in database controls in weblogic

    I am calling a stored procedure from database control which actually returns a result set
    when i call the stored procedure like
    * @jc:sql statement="call PROC4()"
    ResultSet sampleProc() throws SQLException;
    it gives me exception saying
    "weblogic.jws.control.ControlException: Method sampleProc is DML but does not return void or int"
    I would appreciate any help
    Thanks,
    Uma

    Thanks for you reply!
    1) The stored procedure has head
    CREATE OR REPLACE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    cv_1 IN OUT SYS_REFCURSOR
    AS
    err_msg VARCHAR2(100);
    BEGIN
    --Adaptive Server has expanded all '*' elements in the following statement
    OPEN cv_1 FOR
    Select ...
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    err_msg := SQLERRM;
    dbms_output.put_line (err_msg);
    ROLLBACK;
    END;
    If I only run select .. in DBArtisan, it display all 2030,000 rows in 3:44 minutes
    2) But when call stored procedure, it will take 80-100 minutes .
    3) The stored procedure is translated from sybase using migration tools, it's very simple, in sybase it just
    CREATE PROCEDURE X_OWNER.DISPLAY_ADDRESS
    AS
    BEGIN
    select ..
    The select part is exact same.
    4) The perl code is almost exact same, except the query sql:
    sybase verson: my $sql ="exec DISPLAY_ADDRESS";
    and no need bind the cursor parameter.
    This is batch job, we create a file with all information, and ftp to clients everynight.
    Thanks!
    Rulin

  • Multiple stored procedures on report

    I linked two stored procedures on Crystal Report using primary keys but have been having login issues when I migrated from Development to Test environment. I'm NOT using SubReports.
    I want to know if it is even possible to use multiple stored procedures on Crystal Report without using SubReports? I'm using Crystal Reports 10 and SQL Server 2008

    2) CR 10 does not support MS SQL 2008. Check the supported platforms documentation. I Recommend upgrading to CR 2008.
    -- Crystal Reports using single stored procedure and sub reports worked fine with SQL 2008
    That is kind of like saying; my Ferrari was not designed for dirt roads. And it was pretty good on the dirt back lane. But when I went on a mountain logging road,  it broke.
    Anyhow. From your description it also looks like this works for you in the designer ("development" environment), but not once you get it into Enterprise. If that is the case, post your query to the [Business Objects Enterprise Administration|BI Platform; forum, see what they say.
    Ludek

  • Error while calling stored procedure from apps adapter

    Hi,
    I am calling Oracle applications standard api to create ar invoice (XX_BPEL_TEST_APPS_ADAPTER_PKG is the name of wrapper package created by adapter) from apps adapter but getting the following error:
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'test_apps_adapter' failed due to: Stored procedure invocation error. Error while trying to prepare and execute the APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG.AR_INVOICE_API_PUB$CREATE_SIN API. An error occurred while preparing and executing the APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG.AR_INVOICE_API_PUB$CREATE_SIN API. Cause: java.sql.SQLException: ORA-06531: Reference to uninitialized collection ORA-06512: at "APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG", line 199 ORA-06512: at "APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG", line 909 ORA-06512: at line 1 Check to ensure that the API is defined in the database and that the parameters match the signature of the API. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-6531" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    Just wondering if anyone has faced a similar problem?

    I am trying to pass parameter to test my procedure but it is giving this error : ORA-06531: Reference to uninitialized collection
    ORA-06512: at line 12
    Here is example for my test procedure:
    declare
    v_session_id_tab SESSION_ID_TAB_TYPE;
    v_service_type_tab SERVICE_TYPE_TAB_TYPE ;
    v_service_location_tab SERVICE_LOCATION_TAB_TYPE ;
    v_service_call_name_tab SERVICE_CALL_NAME_TAB_TYPE;
    v_service_call_start_time_tab SERVICE_CALL_ST_TAB_TYPE;
    v_service_call_end_time_tab SERVICE_CALL_ET_TAB_TYPE;
    v_service_call_duration_tab SERVICE_CALL_DUR_TAB_TYPE;
    v_status_tab STATUS_TAB_TYPE;
    v_notes_tab NOTES_TAB_TYPE;
    begin
    v_session_id_tab(1) := 1;
    v_service_type_tab(1) := 'db';
    v_service_location_tab(1) := 'local';
    v_service_call_name_tab(1) := 'Name of call';
    v_service_call_start_time_tab(1) := SYSDATE;
    v_service_call_end_time_tab(1) := SYSDATE;
    v_service_call_duration_tab(1) := 100;
    v_status_tab(1) := 'Z';
    v_notes_tab(1) := 'NOTES';
    BULK_INSERTS (v_session_id_tab,v_service_type_tab, v_service_location_tab,v_service_call_name_tab,v_service_call_start_time_tab,v_service_call_end_time_tab,
    v_service_call_duration_tab, v_status_tab, v_notes_tab);
    end;
    I declare all types at schema level.
    Please give your comments.
    Thank you

  • How to Consum array returned by Stored Procedure through DB adapter in BPEL

    Hi all,
    Requirement is, from BPEL through DB Adapter I need to invoke a Stored Procedure in Oracle. Stored procedure takes a String as Input and will returns as Table type object (will return multiple row for a given input) as output. When I try to create a DB Adapter its throwing error as below.
    “…Parameter V_List_Info (output variable name) is of type EMPloyee.emp_detail_tbl which is either not supported or is not an Implemented datatype….”
    Appreciate your help to resolve this issue by suggesting some alternate options. Thanks in Advance,
    Mohan

    Thanks Vijay for your response.
    I have gone through the link which you have shared. This is having Table Type in Input parameter and we tried another stored procedure which has table type as Input Parameter and it works.
    But in my case, the out put is Table type and giving above mentioned error. Please let me know if you need any more details.
    Thanks,
    Mohan.

  • Calling a Stored Procedure with JDBC Adapter ?

    I'm trying to call a Stored Procedure in my XI 3.0 JDBC adapter, but I get an "...invalid number of parameters...." error.
    Does anyone have an example of a Query SQL Statement and the corresponding Stored procedure?
    This is my test code. Eventually I would like to return a resultsett from the stored procedure.
    Query SQL Statement:
    call Sp_sapxi( 'F1' , 'xx' )
    Stored Procedure:
    CREATE OR REPLACE PROCEDURE Sp_sapxi (
      transtype_in IN      xi_flaggtest.TRANSTYPE%TYPE,
      status_in    IN      xi_flaggtest.STATUS%TYPE)
    IS
    BEGIN
      UPDATE xi_flaggtest
                 SET status = status_in
               WHERE transtype = transtype_in;
    END;
    Regards,
    Elling

    you can clear the field key tags mandatory in the XML Schema interpreter parameter and make the Empty string value to Empty string from null value.
    For mapping : you can pass a value that is of the same format of date; but you can take your own value in the database since you are parsing the date format from one to other
    thanks
    nikhil

  • Invoke stored procedure from JDBC Adapter

    Is there a tool that generates interfaces for stored procedure(ORACLE PL/SQL) like RFC or IDOC adapters?

    Hi Denis,
    I dont think there is any such tool.]
    To generate a Stored Procedure of your Oracle DB, all you will have to do in your <b>JDBC adapter configuration</b> is give the name of the Stored Procedure under <Table> and you will have to give "<b>execute</b>" as the value under action attribute.
    Just check this link. Hope it helps,
    http://help.sap.com/saphelp_nw04/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/4d/8c103e05df2e4b95cbcc68fed61705/content.htm
    Just check this blog of Sriram wherein a stored procedure of a MaxDB Database is called.
    /people/sriram.vasudevan3/blog/2005/02/14/calling-stored-procs-in-maxdb-using-sap-xi
    I have implemented a scenario which requires an Oracle stored procedure to be executed and so, if you do need any further info, let me know.
    Hope this info helps,
    Regards,
    Bhavesh

  • Stored procedures and JDBC Adapter

    Hey guys ,
    any blog where i canlook up w.r.t. working with  any stored procedure through xi ?
    Appreciate ur help.
    Krishna

    Hi Krishna,
    Here you go-
    /people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
    Also remember that, Sender JDBC Adapter doesnot support Oracle Stored Procedures. Because Sender JDBC Adapter sends resultset to XI. But Oracle stored procedure returns Cursor.
    I think, if you are using other database then it may support.
    Regards,
    Moorthy

  • Stored procedure with database link with "from table(...)"

    Hi guys,
    I've been told I can't create views on a database by the design team and so have to use this stored procedure to obtain the values.
    select HAN_ID, HAN_DS, GLOBAL_IN, LOCAL_IN
    from table(cast(ODADMIN.ODP00002_QUERY.Execute001@DBLINK(11312,'EN') as
    ODADMIN.ODP00002_001_Array@DBLINK)) WHERE LOCAL_IN = 'Y';I've been told that it works when you remove the database links (so on the actual database) when you remove the cast part. I've tried it with my link and with/without the cast part but it doesn't work. With the example above I get the error: ORA-00907: missing right parenthesis.
    When I remove the CAST-AS and the additional parenthesis it brings i get the error: ORA-00904: "ODADMIN"."ODP00002_QUERY"."EXECUTE001": invalid identifier
    When I do table( *"* ODADMIN.ODP00002_QUERY.Execute001@MWW_DEV(11312,'EN') *"* )... -- wrapping the call in speech marks I get: ORA-00972: identifier is too long
    Anyone see what's wrong? Thanks for any help.
    Mike

    Hi Ben,
    Asking now. By a view I mean one local to the database; I could create one on APEX but then I use the database link twice instead of just 1.
    His reasoning Ben:
    Firstly, Maintenance. We will have to maintain additional views (at additional code). Secondly, if the view has a JOIN, then you can't update through it (without complexities). If we have to get the View to pass the data to a Procedure (that's a pain). Also, standards..
    All update occur via either a Procedure, or a Base view, across over 1000 tables
    That's the standard, and doing things differently is costly long term
    People will not know how it works, it will have to be explained, maintained..etc.
    If the Application has the Business Rules, then updates via Base Views, that's a more standard way of developing. Also, if you update via this view, you'll update multiple rows in one call, which is in-effficient if only ONE row needs to change. Therefore, single row updates from the Application is more efficient
    The procedure is as follows:
    --SET SERVEROUTPUT ON
    DECLARE
    nPBusLoc       NUMBER(5):=11312;
    sPHanId        VARCHAR2(3):='SB1';
    sPLngId        VARCHAR2(2):='EN';
    sPDesc         VARCHAR2(30);
    sPAllowAlloc   VARCHAR2(1);
    sPShowEnq      VARCHAR2(1);
    sPAllowDel     VARCHAR2(1);
    sPShowScan     VARCHAR2(1);
    sPGlobalLocal  VARCHAR2(1);
    sPReturnCd     VARCHAR2(2);
    sPReturnTx     VARCHAR2(100);                  
    BEGIN
    ODADMIN.ODP00001.getHandlingCodes
                           (nPBusLoc    --  IN   NUMBER
                          ,sPHanId      -- IN   VARCHAR2
                          ,sPLngId      -- IN   VARCHAR2
                          ,sPDesc       -- OUT  VARCHAR2
                          ,sPAllowAlloc -- OUT  VARCHAR2
                          ,sPShowEnq    -- OUT  VARCHAR2
                          ,sPAllowDel   -- OUT  VARCHAR2
                          ,sPShowScan   -- OUT  VARCHAR2
                          ,sPGlobalLocal-- OUT  VARCHAR2
                          ,sPReturnCd   -- OUT  VARCHAR2
                          ,sPReturnTx   -- OUT  VARCHAR2                                    
    DBMS_OUTPUT.PUT_LINE('nPBusLoc                 = '||nPBusLoc              );
    DBMS_OUTPUT.PUT_LINE('sPHanId                  = '||sPHanId               );
    DBMS_OUTPUT.PUT_LINE('sPLngId                  = '||sPLngId               );
    DBMS_OUTPUT.PUT_LINE('sPDesc                   = '||sPDesc                );
    DBMS_OUTPUT.PUT_LINE('sPAllowAlloc             = '||sPAllowAlloc          );
    DBMS_OUTPUT.PUT_LINE('sPShowEnq                = '||sPShowEnq             );
    DBMS_OUTPUT.PUT_LINE('sPAllowDel               = '||sPAllowDel            );
    DBMS_OUTPUT.PUT_LINE('sPShowScan               = '||sPShowScan            );
    DBMS_OUTPUT.PUT_LINE('sPGlobalLocal            = '||sPGlobalLocal         );
    DBMS_OUTPUT.PUT_LINE('sPReturnCd               = '||sPReturnCd            );
    DBMS_OUTPUT.PUT_LINE('sPReturnTx               = '||sPReturnTx            );
    END;
    /Mike
    Edited by: Dird on 27-Aug-2009 01:50

  • Multiple Stored Procedure Versioning

    Hi All,
    MS SQL Supports, Multiple SP Versions,
    Does oracle support automatic code translation, can it handle Multiple SP Versions ?
    Stored Procedure Version information: http://www.sqlservercentral.com/columnists/awarren/versioncontrolforstoredprocedures.asp
    We currently use versions any would like to convert our database to Oracle,
    will oracle automatically handle this and how ?
    Kind Regards,
    Dan.

    If those stored procedures are making DML calls against more-or-less the same data, you will be introduce contention.
    In a single instance (non-RAC) contention is within the SGA (buffer_cache, shared_pool, latches, enqueues). If the application is not scalable within the single instance, you will likely make performance worse when running it in RAC.
    So, you must first evaluate how it works (or would work) in a single instance database -- find out if it scalable merely by adding hardware. If it is scalable but your current hardware is limited, you can consider RAC. If it is not scalable and you have serialisation or contention, performance would be worse in RAC.
    Hemant K Chitale

Maybe you are looking for

  • System crashes

    I can honestly say that since I've had my G5, I've always experienced problems of one type or another. Of course, most were user errors or conflicts that I could easily resolve. Recently, however, I have experienced crashes that have literally devast

  • DSP delay between AI to AO

    LV 7.1.1 Embedded & DSP 1.0 & DSK6711 Hi All, I am using LabVIEW DSP (without ever learning LabVIEW) so this may be a simple one: I have a VI which reads an analogue input and sends it to an analogue output with a While loop around it. Nothing else i

  • I want to completely delete a email account from my iMac.

    It seems that the details are still there in the background and when I reset the account it defaults to some of the previous settings

  • Process to migrate an mode LWAPP to IOS File in Aironet 1310

    I like to know a process for migrate LWAPP to IOS File. Thank

  • IPhoto for mac snow leopard

    Tried to update and even buy a new application but message is that it is damaged or sent by email--you know that one. Thing is my existing iPhoto won't email for me so something must have happened since I last used it which was probably a year ago. I