Invoking PL/SQL function (via DB Adapter) with in parameter (BPEL newbie)

Hi!
Using: JDeveloper: 10.1.3.3.0, OAS: 10.1.3
I'm new to BPEL, and now I have a simple problem:
anyway to pass in parameter value with PL/SQL function call via DB Adapter?
PL/SQL function like this:
>>
create or replace function f_test_bpel (p_in in number)
return number
is
begin
return p_in;
end;
>>
For example (audit part of invoke in BPEL Console. Output always null :( ):
>>
Invoke_F_TEST_BPEL
[2008/01/10 15:51:39] Invoked 2-way operation "F_TEST_BPEL" on partner "F_TEST_BPEL".less
- <messages>
- <Invoke_1_F_TEST_BPEL_InputVariable>
- <part name="InputParameters" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/MYDB/F_TEST_BPEL/">
<P_IN>7</P_IN>
</InputParameters>
</part>
</Invoke_1_F_TEST_BPEL_InputVariable>
- <Invoke_1_F_TEST_BPEL_OutputVariable>
- <part name="OutputParameters" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/MYDB/F_TEST_BPEL/">
<F_TEST_BPEL>
</F_TEST_BPEL>
</OutputParameters>
</part>
<part name="response-headers" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</part>
</Invoke_1_F_TEST_BPEL_OutputVariable>
</messages
>>
Regards

Adding more to what 'Arcturus' has put across :
1) You can check your input & output arguments to a PL/SQL function/procedure using an assign activity, in which you tend to assign a source variable to a target variable.
Here, you can check to see, if the input & output to the DB Adapter are correct, if not, you can always recreate the adapter.
2) You can also check the schema of the PL/SQL function, to check if it has the right inputs & outputs.
It'd be a .xsd file in the format of <SCHEMA_NAME-OF-FUNCTION.xsd> viz. SCOTT_EMPDETAILS.xsd

Similar Messages

  • Error while invoking the ABAP Proxy via SOAP Adapter

    Hi,
    My scenario involves SOAP Client invoking a webservice hosted in PI which in turn invokes the ABAP Proxy asyncronously.
    SOAP Client -> PI -> ECC (ABAP Proxy) . This works fine.
    Next , I have exposed the ECC Service Interface as webservice using SOA Manager transaction. Now, once the service is created using SOAManager, i replaced the XI Adapter with SOAP Adapter and provided the target URL as the URL provided by the SOAManager.
    SOAP Client -> PI -> ECC (ABAP Proxy via SOAP Adapter)
    With this approach, i am encountering the below error message
    2009-05-29 12:17:55 Error Adapter Framework caught exception: null
    2009-05-29 12:17:55 Error Delivering the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException.
    Any ideas on the above errror message? Any pointers or inputs will be appreciated.
    Thanks,
    Vinayak Kamath

    > 2009-05-29 12:17:55 Error Adapter Framework caught exception: null
    > 2009-05-29 12:17:55 Error Delivering the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException.
    This is a generic error message which does not have any information about the error which has occurred.
    Do you see any error messages in the SOAP client?
    Regards
    Stefan

  • Error while invoking PL/SQL API from DB Adapter

    Hi everybody.
    We have a plenty of processes, which invokes PL/SQL API using DB Adapters. Everything goes ok, but sometimes API invocations results with error like this:
    <bindingFault>
    <part name="code" >
    <code>902</code>
    </part>
    <part name="summary" >
    <summary>file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ]
    - WSIF JCA Execute of operation 'insert_person' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype 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>
    </part>
    <part name="detail" >
    <detail>ORA-00902: invalid datatype </detail>
    </part>
    </bindingFault>
    (text from Activity Audit trail)
    The error disappears after some "magic" actions like redeploying the process, clearing WSDL cache or restarting BPEL server.
    Any suggestions?
    Debug log for the error:
    Oracle BPEL Server version 10.1.2.0.2
    Build: 2196
    Build time: Tue Jan 10 12:31:53 UTC 2006
    Build type: release
    Source tag: BPEL_10.1.2.0.2_GENERIC_060110.1200
    <2006-06-08 09:03:45,437> <INFO> <dev.collaxa.cube.engine> <CubeEngine::load>
    <2006-06-09 15:13:45,162> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> operation: get_person, partnerLink: <partnerLink name="PL_get_person" partnerLinkType="{http://xmlns.oracle.com/pcbpel/adapter/db/get_person/}get_person_plt">
    <myRole name="null">
    <ServiceName>null</ServiceName>
    <PortType>null</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="get_person_role">
    <ServiceName>null</ServiceName>
    <PortType>{http://xmlns.oracle.com/pcbpel/adapter/db/get_person/}get_person_ptt</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Customer_Dispatcher~1.0/2413-BpInv2-BpSeq2.8-2</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,162> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> def is file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Customer_Dispatcher_1.0.jar/get_person.wsdl
    <2006-06-09 15:13:45,162> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invoke> opName=get_person, parnterLink=<partnerLink name="PL_get_person" partnerLinkType="{http://xmlns.oracle.com/pcbpel/adapter/db/get_person/}get_person_plt">
    <myRole name="null">
    <ServiceName>null</ServiceName>
    <PortType>null</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="get_person_role">
    <ServiceName>{http://xmlns.oracle.com/pcbpel/adapter/db/get_person/}get_person</ServiceName>
    <PortType>{http://xmlns.oracle.com/pcbpel/adapter/db/get_person/}get_person_ptt</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Customer_Dispatcher~1.0/2413-BpInv2-BpSeq2.8-2</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,162> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::doShortCut> Parner Property optShortCut
    <2006-06-09 15:13:45,163> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Customer_Dispatcher_1.0.jar/get_person.wsdl [ get_person_ptt::get_person(InputParameters,OutputParameters) ] - No XMLRecord headers provided
    <2006-06-09 15:13:45,164> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Customer_Dispatcher_1.0.jar/get_person.wsdl [ get_person_ptt::get_person(InputParameters,OutputParameters) ] - Starting JCA LocalTransaction
    <2006-06-09 15:13:45,164> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Customer_Dispatcher_1.0.jar/get_person.wsdl [ get_person_ptt::get_person(InputParameters,OutputParameters) ] - Invoking JCA outbound Interaction
    <2006-06-09 15:13:45,164> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> client acquired
    <2006-06-09 15:13:45,165> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> begin transaction
    <2006-06-09 15:13:45,166> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.sp.AbstractStoredProcedure execute> BEGIN XXAR_CUSOMER_WRAP_PKG.GET_PERSON_REC(P_PARTY_ID=>?, X_PERSON_REC=>?, X_RETURN_STATUS=>?, X_RETURN_MESSAGE=>?); END;
    <2006-06-09 15:13:45,173> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Customer_Dispatcher_1.0.jar/get_person.wsdl [ get_person_ptt::get_person(InputParameters,OutputParameters) ] - Committing JCA LocalTransaction
    <2006-06-09 15:13:45,173> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> commit transaction
    <2006-06-09 15:13:45,174> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> client released
    <2006-06-09 15:13:45,176> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> Returning outbound XMLRecord for OutputParameters
    <2006-06-09 15:13:45,192> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> operation: initiate, partnerLink: <partnerLink name="PL_ins_upd_person" partnerLinkType="{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2S">
    <myRole name="Ins_person_M2SRequester">
    <ServiceName>null</ServiceName>
    <PortType>{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2SCallback</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="Ins_person_M2SProvider">
    <ServiceName>null</ServiceName>
    <PortType>{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2S</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Customer_Dispatcher~1.0/2413-BpInv3-BpSeq2.8-5</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,193> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> def is http://wizard.etops.ru:7780/orabpel/dev/Ins_person_M2S/Ins_person_M2S?wsdl
    <2006-06-09 15:13:45,193> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invoke> opName=initiate, parnterLink=<partnerLink name="PL_ins_upd_person" partnerLinkType="{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2S">
    <myRole name="Ins_person_M2SRequester">
    <ServiceName>{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2SCallbackService</ServiceName>
    <PortType>{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2SCallback</PortType>
    <Address>http://wizard.etops.ru:7780/orabpel/dev/Customer_Dispatcher/1.0/PL_ins_upd_person/Ins_person_M2SRequester</Address>
    </myRole>
    <partnerRole name="Ins_person_M2SProvider">
    <ServiceName>{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2S</ServiceName>
    <PortType>{http://xmlns.oracle.com/Ins_person_M2S}Ins_person_M2S</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Customer_Dispatcher~1.0/2413-BpInv3-BpSeq2.8-5</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,193> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::doShortCut> Parner Property optShortCut
    <2006-06-09 15:13:45,193> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::doShortCut> Calling local process http://wizard.etops.ru:7780/orabpel/dev/Ins_person_M2S/1.0 ... shortcut
    <2006-06-09 15:13:45,194> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invokeLocalService> location=http://wizard.etops.ru:7780/orabpel/dev/Ins_person_M2S/1.0
    <2006-06-09 15:13:45,194> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invokeLocalService> processId=Ins_person_M2S, revisionTag=1.0, partnerLinkName=, roleName=
    <2006-06-09 15:13:45,255> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> operation: check_person, partnerLink: <partnerLink name="PL_check_person" partnerLinkType="{http://xmlns.oracle.com/pcbpel/adapter/db/check_person/}check_person_plt">
    <myRole name="null">
    <ServiceName>null</ServiceName>
    <PortType>null</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="check_person_role">
    <ServiceName>null</ServiceName>
    <PortType>{http://xmlns.oracle.com/pcbpel/adapter/db/check_person/}check_person_ptt</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Ins_person_M2S~1.0/2414-BpInv0-BpSeq1.5-1</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,255> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> def is file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/check_person.wsdl
    <2006-06-09 15:13:45,255> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invoke> opName=check_person, parnterLink=<partnerLink name="PL_check_person" partnerLinkType="{http://xmlns.oracle.com/pcbpel/adapter/db/check_person/}check_person_plt">
    <myRole name="null">
    <ServiceName>null</ServiceName>
    <PortType>null</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="check_person_role">
    <ServiceName>{http://xmlns.oracle.com/pcbpel/adapter/db/check_person/}check_person</ServiceName>
    <PortType>{http://xmlns.oracle.com/pcbpel/adapter/db/check_person/}check_person_ptt</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Ins_person_M2S~1.0/2414-BpInv0-BpSeq1.5-1</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,255> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::doShortCut> Parner Property optShortCut
    <2006-06-09 15:13:45,258> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/check_person.wsdl [ check_person_ptt::check_person(InputParameters,OutputParameters) ] - No XMLRecord headers provided
    <2006-06-09 15:13:45,258> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/check_person.wsdl [ check_person_ptt::check_person(InputParameters,OutputParameters) ] - Starting JCA LocalTransaction
    <2006-06-09 15:13:45,259> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/check_person.wsdl [ check_person_ptt::check_person(InputParameters,OutputParameters) ] - Invoking JCA outbound Interaction
    <2006-06-09 15:13:45,259> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> client acquired
    <2006-06-09 15:13:45,260> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> begin transaction
    <2006-06-09 15:13:45,262> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.sp.AbstractStoredProcedure execute> BEGIN XXAR_CUSTOMER_BPCONF_CHECK_PKG.CHECK_PERSON(P_ACTION=>?, P_PERSON=>?, X_RESULT=>?, X_CONFLICTS=>?); END;
    <2006-06-09 15:13:45,263> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/check_person.wsdl [ check_person_ptt::check_person(InputParameters,OutputParameters) ] - Committing JCA LocalTransaction
    <2006-06-09 15:13:45,264> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> commit transaction
    <2006-06-09 15:13:45,264> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> client released
    <2006-06-09 15:13:45,265> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> Returning outbound XMLRecord for OutputParameters
    <2006-06-09 15:13:45,273> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> operation: insert_person, partnerLink: <partnerLink name="PL_insert_person" partnerLinkType="{http://xmlns.oracle.com/pcbpel/adapter/db/insert_person/}insert_person_plt">
    <myRole name="null">
    <ServiceName>null</ServiceName>
    <PortType>null</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="insert_person_role">
    <ServiceName>null</ServiceName>
    <PortType>{http://xmlns.oracle.com/pcbpel/adapter/db/insert_person/}insert_person_ptt</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Ins_person_M2S~1.0/2414-BpInv2-BpSeq4.12-1</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,274> <DEBUG> <dev.collaxa.cube.ws> <WSInvocationManager::invoke> def is file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl
    <2006-06-09 15:13:45,274> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invoke> opName=insert_person, parnterLink=<partnerLink name="PL_insert_person" partnerLinkType="{http://xmlns.oracle.com/pcbpel/adapter/db/insert_person/}insert_person_plt">
    <myRole name="null">
    <ServiceName>null</ServiceName>
    <PortType>null</PortType>
    <Address>null</Address>
    </myRole>
    <partnerRole name="insert_person_role">
    <ServiceName>{http://xmlns.oracle.com/pcbpel/adapter/db/insert_person/}insert_person</ServiceName>
    <PortType>{http://xmlns.oracle.com/pcbpel/adapter/db/insert_person/}insert_person_ptt</PortType>
    <Address>null</Address>
    </partnerRole>
    <conversationId>bpel://localhost/dev/Ins_person_M2S~1.0/2414-BpInv2-BpSeq4.12-1</conversationId>
    <properties>{}</properties>
    </partnerLink>
    <2006-06-09 15:13:45,274> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::doShortCut> Parner Property optShortCut
    <2006-06-09 15:13:45,277> <INFO> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - Using JCA Connection Pool - max size = <unbounded>
    <2006-06-09 15:13:45,277> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - Looking up Resource Adapter JDNI location 'eis/DB/Slave'
    <2006-06-09 15:13:45,278> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> Instantiating outbound JCA interactionSpec oracle.tip.adapter.db.DBStoredProcedureInteractionSpec
    <2006-06-09 15:13:45,278> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> Populating outbound JCA interactionSpec oracle.tip.adapter.db.DBStoredProcedureInteractionSpec with properties: {ProcedureName=CREATE_PERSON, PackageName=XXAR_CUSOMER_WRAP_PKG}
    <2006-06-09 15:13:45,299> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - No XMLRecord headers provided
    <2006-06-09 15:13:45,299> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - Starting JCA LocalTransaction
    <2006-06-09 15:13:45,299> <DEBUG> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - Invoking JCA outbound Interaction
    <2006-06-09 15:13:45,300> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> client acquired
    <2006-06-09 15:13:45,300> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> begin transaction
    <2006-06-09 15:13:45,302> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.sp.AbstractStoredProcedure execute> BEGIN XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON(P_PERSON_REC=>?, X_PARTY_ID=>?, X_PARTY_NUMBER=>?, X_PROFILE_ID=>?, X_RETURN_STATUS=>?, X_RETURN_MESSAGE=>?); END;
    <2006-06-09 15:13:45,304> <ERROR> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - Could not invoke operation 'insert_person' against the 'Database Adapter' due to:
    ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype
    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.
         at oracle.tip.adapter.db.sp.SPConstants.createResourceException(SPConstants.java:217)
         at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:104)
         at oracle.tip.adapter.db.sp.SPInteraction.executeStoredProcedure(SPInteraction.java:95)
         at oracle.tip.adapter.db.DBInteraction.executeStoredProcedure(DBInteraction.java:532)
         at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:164)
         at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:458)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:452)
         at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:327)
         at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:189)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:601)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:317)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:188)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3408)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1836)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:166)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:252)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5438)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1217)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:511)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:335)
         at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: java.sql.SQLException: ORA-00902: invalid datatype
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:625)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
         at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:869)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1153)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2932)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3023)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4132)
         at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:92)
         ... 29 more
    <2006-06-09 15:13:45,304> <ERROR> <dev.collaxa.cube.ws> <AdapterFramework::Outbound> file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - Rolling back JCA LocalTransaction
    <2006-06-09 15:13:45,305> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> rollback transaction
    <2006-06-09 15:13:45,306> <DEBUG> <dev.collaxa.cube.ws> <Database Adapter::Outbound> <oracle.tip.adapter.db.TopLinkLogger log> client released
    <2006-06-09 15:13:45,306> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invoke> invoke failed
    org.collaxa.thirdparty.apache.wsif.WSIFException: file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'insert_person' failed due to: Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype
    ; nested exception is:
         ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype
    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.
         at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:570)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:452)
         at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:327)
         at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:189)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:601)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:317)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:188)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3408)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1836)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:166)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:252)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5438)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1217)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:511)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:335)
         at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123)
         at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755)
         at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype
    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.
         at oracle.tip.adapter.db.sp.SPConstants.createResourceException(SPConstants.java:217)
         at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:104)
         at oracle.tip.adapter.db.sp.SPInteraction.executeStoredProcedure(SPInteraction.java:95)
         at oracle.tip.adapter.db.DBInteraction.executeStoredProcedure(DBInteraction.java:532)
         at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:164)
         at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:458)
         ... 25 more
    Caused by: java.sql.SQLException: ORA-00902: invalid datatype
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:625)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:180)
         at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:869)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1153)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2932)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3023)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4132)
         at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:92)
         ... 29 more
    <2006-06-09 15:13:45,307> <DEBUG> <dev.collaxa.cube.ws> <WSIFInvocationHandler::invoke> Fault happened: file:/d01/oracle/as10g/integration/orabpel/domains/dev/tmp/.bpel_Ins_person_M2S_1.0.jar/insert_person.wsdl [ insert_person_ptt::insert_person(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'insert_person' failed due to: Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype
    ; nested exception is:
         ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the XXAR_CUSOMER_WRAP_PKG.CREATE_PERSON API. Cause: java.sql.SQLException: ORA-00902: invalid datatype
    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.

    Adding more to what 'Arcturus' has put across :
    1) You can check your input & output arguments to a PL/SQL function/procedure using an assign activity, in which you tend to assign a source variable to a target variable.
    Here, you can check to see, if the input & output to the DB Adapter are correct, if not, you can always recreate the adapter.
    2) You can also check the schema of the PL/SQL function, to check if it has the right inputs & outputs.
    It'd be a .xsd file in the format of <SCHEMA_NAME-OF-FUNCTION.xsd> viz. SCOTT_EMPDETAILS.xsd

  • Unable to retreive the return value of pl/sql function using DB Adapter

    Dear Experts,
    I am using DB Adapter in my BPEL Process. Using DB Adapter I am invoking a PL / SQL function. I am able to send two input parameters for the pl/sql function. But I dont know how to retrieve the return value from the function. Please suggest me.
    Thanks,
    Rajesh

    Yes I am returning a value from PL/SQL function.
    Please see the code segments below,
    FUNCTION "TD_INSERT" (a TDINIT_TYPE, stops TDDETAIL_TABLE )
    RETURN VARCHAR2
    AS
    td_no Number;
    td_id Number;
    stop TDDETAILFULL_TYPE;
    length number;
    BEGIN
    insert into TD_INIT values( ----passing all the values here --------- );
    select max(tdno) into td_no from TD_INIT ;
    length := stops.count;
    for i in 1.. length loop
    stop := stops(i);
    insert into TD_DETAIL_FULL values(
    td_no, ------- );
    end loop;
    commit;
    RETURN td_no;
    END;
    Thanks,
    Rajesh

  • How to specify custom SQL in polling db adapter with logical delete option

    Hi all,
    I am writing a SOA composite app using JDeveloper SOA Suite 11.1.1.4 connecting to a SQL Server db using a polling DB Adapter with the logical delete option to send data to a BPEL process.
    I have requirements which go beyond what is supported in the JDeveloper UI for DB Adapter polling options, namely:
    * update more than one column to mark each row read, and
    * specify different SQL for the logical delete operation based on whether bpel processing of the data polled was successful or not.
    A complicating factor is that the polling involves two tables. Here is my full use-case:
    1) Polling will select data derived from two tables: e.g. 'headers' and 'details' simplified for this example:
    table: headers
    hid - primary key
    name - data label
    status - 'unprocessed', 'processed', or 'error'
    processedDate - null when data is loaded, set to current datetime when row is processed
    table: details
    hid - foreign key pointed at header.hid
    attr - data attribute name
    value - value of data attribute
    2) There is a many:1 relationship between detail and header rows through the hid columns. The db adapter polling SELECT shall return results from an outer join consisting of one header row and the associated detail rows where header.status = 'unprocessed' and header.hid = details.hid. (This is supported by the Jdeveloper UI)
    3) The polled data will be sent to be processed by a bpel process:
    3.1) If the bpel processing succeeds, the logical delete (UPDATE) operation shall set header.status = 'processed', and header.processedDate = 'getdate()'.
    3.2) If bpel processing fails (e.g. hits a data error while processing the selected data) the logical delete (UPDATE) operation shall set header.status = 'failed', header.processedDate = 'getdate()', and header.errorMsg = '{some text returned from bpel}'.
    Several parts of #3 are not supported by the JDeveloper UI: updating multiple columns to mark the row processed, using getdate() to populate a value of one of those column updates, doing different update operations based on the results of the BPEL processing of the data (success or error), and using data obtained from BPEL processing as a value of those column updates (error message).
    I have found examples which describe specifying custom SQL using the polling delete option to create a template then modifying the toplink file(s) to specify custom select and update SQL to implement a logical delete. (e.g. http://dlimiter.wordpress.com/2009/11/05/advanced-logic-in-oracle-bpel-polling-database-adapter/ and http://myexperienceswithsoa.blogspot.com/2010/06/db-adapter-polling-tricks.html). But none of them match what I've got in my project, in the first case because maybe because I'm using a higher version of JDeveloper, and in the second I think because in my case two tables are involved.
    Any suggestions would be appreciated. Thanks, John

    Hi John,
    You've raised a good scenario.
    First of all let me say that the purpose of the DB polling transaction, is to have an option to initiate a process from a DB table/view and not to update multiple fields in a table (or have other complex manipulation on the table).
    So, when choose to update a field in a record, after reading it, you are "telling" the engine not to poll this record again. Sure, i guess you can find a solution/workaround for it, but I don't think this is the way....
    The question now is what to do?
    You can have another DB adapter where you can update the data after finishing the process. In that case, after reading the data (on polling transaction) - update the header.status = 'processed' for example, and after processing the selected data update the rest of the fields.
    Hope it make some sense to you.
    Arik

  • How to invoke PL\SQL Function from HTML

    I have creadted empty functin in protal30
    i receive ERROR when i invoke ANY function in existing scheme
    portal30.FOO: PROCEDURE DOESN'T EXIST
    DAD name: portal30
    PROCEDURE : portal30.FOO
    URL : http://'server':80/pls/portal30/portal30.FOO
    PARAMETERS :
    ============
    txt:
    ENVIRONMENT:
    ============
    PLSQL_GATEWAY=WebDb
    .

    url above is not corect
    http://server:80/pls/portal30/foo
    foo: PROCEDURE DOESN'T EXIST
    DAD name: portal30
    PROCEDURE : foo
    URL : http://'server':80/pls/portal30/foo
    I can't invoke any existing function in prtlal30 schema
    null

  • Call Oracle Function via JDBC Adapter

    Hi to everybody,
    using JDBC connection with an Oracle DB, from XI I manage to send messages to execute SQL statements or Stored Procedures. Does anybody know if there is a way to call also an Oracle Function?
    Thanks a lot for any help...
    Ilaria

    Hi Illaria,
    I think i agree with Michal. The solution to your problem would be to go for a stored procedure. The link on SDN help only tells us that a stored procedure can be executed and does not discuss about oracle functions.
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    So, Stored Procedures, it has to be.
    Regards,
    Bhavesh

  • How to execute an sql function containing a SELECT query as paramete

    Hi
    I want to execute this sql query using JDBC methods , but could not be able to find any appropriate method to execute this query.
    select dbms_xmlgen.getxml(select * from departments) from dual
    please some one help with appropriate java code to execute it.
    Thank you

    >
    I want to execute this sql query using JDBC methods , but could not be able to find any appropriate method to execute this query.
    select dbms_xmlgen.getxml(select * from departments) from dual
    please some one help with appropriate java code to execute it.
    >
    Java code? You can't execute that query at all since it is invalid. The parameter needs to be a query string NOT a query.
    select dbms_xmlgen.getxml('select * from departments') from dual See the DBMS_XMLGEN package in the docs
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_xmlgen.htm#i1013206
    >
    Converts the results from the SQL query string to XML format, and returns the XML as a temporary CLOB, which must be subsequently freed using the DBMS_LOB.FREETEMPORARY call:
    DBMS_XMLGEN.GETXML (
    sqlQuery IN VARCHAR2,
    dtdOrSchema IN number := NONE)
    RETURN CLOB;
    >
    Then you execute that query like any other query that returns a result set. The result set will consist of one row and one column of CLOB datatype.
    See the JDBC Developer's Guide - it has examples of how to execute queries that return result sets.
    And this section shows how tow read/write CLOBs
    http://docs.oracle.com/cd/B28359_01/java.111/b31224/oralob.htm#sthref755

  • SQL query editor and "like" with a parameter (can't get it to work).

    I've been following all sorts of directions on how to use mysql a table and modifying the query to accept a parameter, funny thing is no matter how I try to construct the simplest query, the query editor does not parse the query properly when using the "LIKE" statement.
    Using 3.11 and/or 3.12 of the J/connector with no success.
    I am using a query that resembles the following:
    select all table.fieldname, table.fieldname2 from tablename where table.fieldname like '%?%'
    It parses correctly but the code when run can not find the parameter as it reports the number of paramenters as being incorrect.
    I have tried these varriations of the "like" statement.
    '%?%' - expected this to work, it parses correctly but errors out claiming invalid number of parameters.
    %?% - without quotes causes parsing errors.
    '?' - parses correctly but isn't the correct query.
    ? - again without quotes causes parsing errors,even if it did it isn't the correct query.
    If I set the query to use a value instead of a parameter - it works fine.
    Hints? Suggestions? Bug?
    Thanks in advance.

    Hmm, try use
    select ... like ?
    And path this kind of string as the parameter to your query
    String findCriteria = "what you are looking for";
    String parameter = "'%" + findCriteria + "%'";Roman.

  • SQLJ : sending refcursors via out parameters of PL/SQL functions possible ?

    Hello,
    in SQLJ it's possible to get a refcursor back from a PL/SQL
    function via
    the return value(the usual case in the online examples).
    Is it also possible to give a refcursor back via an out
    parameter
    so that the return value could be used for others ways ?
    SQLJ generation in JDeveloper handles the first way, but we
    didn't
    get it to work with the out parameter.
    Thank you for your help.

    It's certainly possible to have a stored procedure with an OUT parameter that is a REF CURSOR and use that to return data to JDBC. That's actually the most common way that JDBC programmers get ResultSets from stored procedures. I would have to assume that SQLJ would facilitate that?
    Is there a reason that you're looking to use a stored function rather than a stored procedure? The latter seems like a much more logical construct when you have OUT parameters. I've never seen a stored function that was defined with any OUT parameters.
    Justin
    Distributed Database Consulting, Inc.
    www.ddbcinc.com

  • How to use SQL function in Tabular Form

    Edited by: JuniorNewbi on 03-Nov-2009 08:15

    Hi
    I want to have a Tabular Form in which the Report Source sql statement is retrieved via an SQL function, so that the resulting report can show a variable number of columns and column names.
    The following great web site shows just the kind of thing i'm trying to do (Tabular Form Dynamic):
    http://htmldb.oracle.com/pls/otn/f?p=31517:195:518536699796436::NO:::
    However, as an Apex newbie, i don't know how to invoke the SQL function from within the page. The "Report Source" appears to only allow a static "select...." style of entry.
    I don't have access to the Denes Kubicek's workspace so don't know how he would have invoked his PL/SQL Function.
    Can anyone help?
    Thanks in advance!
    Edited by: JuniorNewbi on 03-Nov-2009 08:46

  • SYS_GUID()  SQL functions within XQuery

    Is there any simple way to invoke regular SQL functions from within XQuery?
    I would like to create an identifier attribute, and set the value to SYS_GUID(), but when I try to directly embed the function, it comes back saying:
    ORA-19237: XP0017 - unable to resolve call to function - fn:SYS_GUID
    select XMLQUERY('
    <AgeCmf dtm="{current-dateTime()}" id="{SYS_GUID()}"/>
    ' RETURNING CONTENT) from dual;
    I could dump the value into a temp table, or make it an input parameter via another function, but I am looking for something simple within a SQL call.
    Thanks,
    HW

    Maybe this?:
    michaels>  select xmlquery('<AgeCmf dtm="{current-dateTime()}" id="{s}"/>' passing xmltype('<s>' || sys_guid() || '</s>') returning content) x from dual
    X                                                                                                 
    <AgeCmf dtm=" 2007-06-20T07:05:19.515000+02:00" id="6304A70F5C104ACB98C69EEB3D47891C"></AgeCmf>   

  • Support of PL/SQL Functions in Data Modeler

    Hello,
    Sorry if this question has already been answered, I searched the forum but got 215 hits on data modeler + pl/sql functions.
    So my question is:
    Stored Procedures are already supported by the physical model (11g) of data modeler, but I could not find any method
    to create pl/sql functions via data modeler - neither in the documentation nor on the user interface. Is this
    currently not supported?

    Is this currently not supported?There will be support for functions and packages in next release.
    Philip

  • Problem when calling a return type BOOLEAN SQL Function in a package

    Hi All,
    I am having problem when trying to call a SQL function in a package with return type BOOLEAN
    The SQL function signature is as follows
    CREATE OR REPLACE PACKAGE RMSOWNER.ORDER_ATTRIB_SQL ****
    FUNCTION GET_PO_TYPE_DESC(O_error_message IN OUT VARCHAR2,
    I_PO_TYPE       IN     VARCHAR2,
    O_PO_TYPE_DESC  IN OUT VARCHAR2)
    RETURN BOOLEAN;
    Following is my java code
    +CallableStatement cs3 = conn.prepareCall("{?=call ORDER_ATTRIB_SQL.GET_PO_TYPE_DESC(?,?,?)}");+
    +cs3.registerOutParameter(1, java.sql.Types.BOOLEAN);+
    +cs3.registerOutParameter(2, java.sql.Types.VARCHAR);+
    +cs3.registerOutParameter(4, java.sql.Types.VARCHAR);+
    +cs3.setString(2, "");+
    +cs3.setString(3, "ST");+
    +cs3.setString(4, "");+
    +ResultSet rs3 = cs3.executeQuery();+
    I get the following exception, i tried changing the sql type(registerOutParameter) from boolean to bit but i still getting this exception.
    But when i call any other functions with return type other than boolean they work perfectly fine.
    Please can anyone help me fix this issue, i am not sure if its anything to do with vendor JDBC classes?
    +java.sql.SQLException: ORA-06550: line 1, column 13:+
    +PLS-00382: expression is of wrong type+
    +ORA-06550: line 1, column 7:+
    +PL/SQL: Statement ignored+
    +     at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)+
    +     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)+
    +     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)+
    +     at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)+
    +     at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:215)+
    +     at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:954)+
    +     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)+
    +     at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)+
    +     at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3422)+
    +     at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4394)+
    #####

    Hello People!
    There is another workaround!!
    See the example below:
    private String callBooleanAPi(String tableName,String apikey,String dtInicio,String dtFim,String comando) throws SQLException {
                   CallableStatement cs = null;
                   String call = "";
                   String retorno = null;
                   try {
                        if(comando.equalsIgnoreCase("INSERT")){
                             call = "declare x BOOLEAN; y varchar2(2);begin x :=PKG.INSERT(?,?,?,?,?); if x then y := 'S'; else y :='N'; end if; ? := y;end;";
                        } else if(comando.equalsIgnoreCase("UPDATE")){
                             call = "declare x BOOLEAN; y varchar2(2);begin x := PKG.UPDATE(?,?,?,?,?); if x then y := 'S'; else y :='N'; end if; ? := y;end;";
                        } else if(comando.equalsIgnoreCase("DELETE")){
                             call = "declare x BOOLEAN; y varchar2(2);begin x := PKG.DELETE(?,?,?,?,?); if x then y := 'S'; else y :='N'; end if; ? := y;end;";
                        cs = conn.prepareCall(call);
                        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
                        SimpleDateFormat sdfToSqlDate = new SimpleDateFormat("yyyy-MM-dd");
                        java.util.Date dataInicialVigencia =null;
                        java.util.Date dataFinalVigencia = null;
                        Date dtInicialFormatada =null;
                        Date dtFinalFormatada = null;
                        if(dtInicio != null && !dtInicio.equals("")){
                             dataInicialVigencia = sdf.parse(dtInicio);
                             dtInicio =sdfToSqlDate.format(dataInicialVigencia);
                             dtInicialFormatada = Date.valueOf(dtInicio);
                        if(dtFim != null && !dtFim.equals("")){
                             dataFinalVigencia = sdf.parse(dtFim);
                             dtFim =sdfToSqlDate.format(dataFinalVigencia);
                             dtFinalFormatada = Date.valueOf(dtFim);
                        cs.setString(1, tableName);
    cs.setString(2, apikey);
    cs.setDate(3, dtInicialFormatada );
    cs.setDate(4, dtFinalFormatada );
    cs.registerOutParameter(5, java.sql.Types.VARCHAR);
    cs.registerOutParameter(6, java.sql.Types.VARCHAR );
    cs.execute();
                        retorno = cs.getString(6);
                        System.out.println( cs.getString(5));
                   } catch(SQLException e){
                   throw new SQLException("An SQL error ocurred while calling the API COR_VIGENCIA: " + e);
                   } catch(Exception e){
                   Debug.logger.error( "Error calculating order: " + id, e );
                   } finally {
                   if (cs != null) {
                   cs.close();
                   cs = null;
                   return retorno;
    As you can see the CallableStatement class acepts PL/SQl blocks.
    Best Regards.

  • Invoking a PL/SQL function from BPEL throws fault.

    Hi, I'm trying to invoke a PL/SQL function that inserts data in to a table from a BPEL via DB Adapter. The process, when I test it, throws a runtime fault as follows:
    *Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'EmpRegister' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. AddEmployee:EmpRegister [ EmpRegister_ptt::EmpRegister(InputParameters,OutputParameters) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/DB/DBConn_215'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/DBConn_215. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.*
    Also, the fault description was a s follows:
    *JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/DB/DBConn_215'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/DB/DBConn_215. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server.*
    I know, it looks like a JCA adapter error, but when I do a DB to DB table synchronization with this connection factory, no problems happen. Is ther any special procedure I should follow in mapping input data to db schema?

    HI,
    I am working on BPEL process and human workflow...
    I created a process and a Data control and now can see it as JCA Adapter in console..in this adapter I am executing a sql procedure.. we can execute in in BPEL process through invoke activity, now my requirement is how to invoke this data control through custom java code. please help...\
    now i have two wsdl files.
    RegistrationUpload.wsdl(process name)
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="RegistrationUpload"
    targetNamespace="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/RegistrationUpload"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/RegistrationUpload"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         TYPE DEFINITION - List of services participating in this BPEL process
         The default output of the BPEL designer uses strings as input and
         output to the BPEL Process. But you can define or import any XML
         Schema type and use them as part of the message types.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <wsdl:types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://xmlns.oracle.com/RegistrationUpload_jws/RegistrationUpload/RegistrationUpload" schemaLocation="xsd/RegistrationUpload.xsd" />
              </schema>
         </wsdl:types>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <wsdl:message name="RegistrationUploadRequestMessage">
              <wsdl:part name="payload" element="client:process"/>
         </wsdl:message>
         <wsdl:message name="RegistrationUploadResponseMessage">
              <wsdl:part name="payload" element="client:processResponse"/>
         </wsdl:message>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- portType implemented by the RegistrationUpload BPEL process -->
         <wsdl:portType name="RegistrationUpload">
              <wsdl:operation name="process">
                   <wsdl:input message="client:RegistrationUploadRequestMessage"/>
              </wsdl:operation>
         </wsdl:portType>
         <!-- portType implemented by the requester of RegistrationUpload BPEL process
         for asynchronous callback purposes
         -->
         <wsdl:portType name="RegistrationUploadCallback">
              <wsdl:operation name="processResponse">
                   <wsdl:input message="client:RegistrationUploadResponseMessage"/>
              </wsdl:operation>
         </wsdl:portType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         the RegistrationUpload partnerLinkType binds the provider and
         requester portType into an asynchronous conversation.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <plnk:partnerLinkType name="RegistrationUpload">
              <plnk:role name="RegistrationUploadProvider">
                   <plnk:portType name="client:RegistrationUpload"/>
              </plnk:role>
              <plnk:role name="RegistrationUploadRequester">
                   <plnk:portType name="client:RegistrationUploadCallback"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </wsdl:definitions>
    uploadDataToPermananentDB.wsdl
    <?binding.jca uploadDataToPermananentDB_db.jca?>
    <wsdl:definitions name="uploadDataToPermananentDB"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/RegistrationUpload/RegistrationUpload/uploadDataToPermananentDB"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/DAMSMGR/TEMP_TO_PERMANENTDB/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/RegistrationUpload/RegistrationUpload/uploadDataToPermananentDB"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
    <plt:partnerLinkType name="uploadDataToPermananentDB_plt">
    <plt:role name="uploadDataToPermananentDB_role">
    <plt:portType name="tns:uploadDataToPermananentDB_ptt"/>
    </plt:role>
    </plt:partnerLinkType>
    <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/DAMSMGR/TEMP_TO_PERMANENTDB/"
    schemaLocation="xsd/DAMSMGR_TEMP_TO_PERMANENTDB.xsd"/>
    </schema>
    </wsdl:types>
    <wsdl:message name="args_in_msg">
    <wsdl:part name="InputParameters" element="db:InputParameters"/>
    </wsdl:message>
    <wsdl:portType name="uploadDataToPermananentDB_ptt">
    <wsdl:operation name="uploadDataToPermananentDB">
    <wsdl:input message="tns:args_in_msg"/>
    </wsdl:operation>
    </wsdl:portType>
    </wsdl:definitions>
    please help me how to call the data adaper from my java code..
    hope i will get some hint in this forum...
    Edited by: user13370040 on Mar 22, 2011 5:55 AM

Maybe you are looking for

  • Very slow Mac, compared to when running a fresh install

    I was wondering if anyone could help me diagnose the reason for my mac being so slow. (Eg 1.5-3 minute boot up as opposed to 15-20 seconds) And why it takes a long time to load a lot of things. I have restored this from a time machine partition, so I

  • Is it possible to import photos from a Samsung Galaxy to LR?

    I've just switched from the iPhone (which imported fine to LR) but I'm having trouble getting my new Galaxy to import.

  • Intel-VT and DEP

    I know the 5000 series XEONs in the Mac Pro support both data execution prevention (DEP) and hardware assisted virtualizaiton (Intel VT). Is there a way to turn these on since there is not EFI interface?

  • Recover files like u01 u02 and so on

    I don't know if this is the right forum but this is what i got: dbs - folder oradata - folder pfile - folder u02 - folder u03 - folder u04 - folder u05 - folder u06 - folder u07 - folder u08 - folder listener.ora - file oraenv2 - file rman recovery.d

  • Work Flow For Activity

    Hi All, I have a section called USERS as a related information in the task detail page.Every time I modify the task & click on the SEND EMAIL check box I need to send an email to all users under the USERS section mentioning that this task has been mo