Had a scenario in one of my projects where in we need to pass XMLType as input parameter and output parameter to a oracle stored procedure. So find some excerpts of the POC in this post.
Following are a few steps that I followed:
1) Created stored procs with XMLType as the input and output parameters.
|
Fig.1 Oracle Stored Procedure with XMLType parameters
|
2) Creating the schema's for the Oracle Stored Procedure using the Consume Adapter Service.
|
Fig.2 Consume Adapter Service
|
3) Following is the schema generated for the Oracle stored procedure.
|
Fig.3 BizTalk Auto Generated Schema
|
4) Created a simple orchestration for picking up the Request File and sending to the Oracle Stored Proc using the auto generated WCF request response port(This gets generated during the Consume Adapter Service).
|
Fig.4 Sample Orchestration
|
5) Sample file used for testing is as follows.
|
Fig.5 Sample File containing XMLType data as a String
|
6) Sample response file containing the response from the Oracle Stored Proc.
|
Fig. 6 Response File returned by Oracle Stored Procedure.
|
Overall, a couple of things to notice that while for using ambientTransactions we need to use a TNS alias. XMLtype is taken as a string so have to take care of the data that goes in the input. Reserved XML characters like '<', '>'. must be replaced with their entity.representations (< and >)