BizTalk Adapter Pack for Oracle 实现Oracle 11g的CRUD

昨天在整理BizTalk 2010版本中所支持的适配器时,发现官方文档中描述的对Oracle数据库的支持有误,没有写出对Oracle 11g版本的支持,感觉很confuse,所以下载了一个11g测试一下。 

这两天有点小忙,就不做过多的文字描述了。


测试结果

经过测试,目前BizTalk支持的Oracle数据库版本如下:

  • Oracle Database 11.1
  • Oracle Database 10.2
  • Oracle Database 10.1
  • Oracle Database 9.2
  • Oracle Data Access Components for Oracle Client 11.1.0.6 with Patch Set 11.1.0.7
  • Oracle Data Access Components for Oracle Client 11.1.0.7

安装Oracle 11g Release 2

1_-Install-InstantClient_thumb2

2_-Install-InstantClient-Location_th

3_-Installation-InstantClient-Summar[2]

4_-Installation-InstantClient-Instal[1]

5_-Installation-InstantClient-Instal

6_-Oracle-Client-GAC_thumb2


创建BizTalk Adapter for Oracle

1. 创建一个BizTalk Project,并添加一个适配器服务的生成项。

image_thumb2[1]

2. 在配置窗口当中配置Oracle的连接字符串以及相关其他参数。

7_-Configure-Adapter_thumb2

3. 连接Oracle数据库,并配置增、删、改查操作。

image_thumb6

image_thumb9

4. 创建完成

image20


创建测试消息实例

通过BizTalk适配器,我们创建了4个消息架构,在部署之后BizTalk会根据消息中的内容来在Oracle中进行增、删、改、查操作。

Select

<ns0:Select xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
 <ns0:COLUMN_NAMES>COLUMN_NAMES_0</ns0:COLUMN_NAMES>
 <ns0:FILTER>FILTER_0</ns0:FILTER>
</ns0:Select>

Update

<ns0:Update xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
 <ns0:RECORDSET>
 <ns0:EMPLOYEE_ID>70</ns0:EMPLOYEE_ID>
 <ns0:FIRST_NAME>FIRST_NAMEFIRST_NAME</ns0:FIRST_NAME>
 <ns0:LAST_NAME>LAST_NAMELAST_NAMELAST_NA</ns0:LAST_NAME>
 <ns0:EMAIL>EMAILEMAILEMAILEMAILEMAIL</ns0:EMAIL>
 <ns0:PHONE_NUMBER>PHONE_NUMBERPHONE_NU</ns0:PHONE_NUMBER>
 <ns0:HIRE_DATE>1999-05-31T13:20:00.000-05:00</ns0:HIRE_DATE>
 <ns0:JOB_ID>JOB_IDJOB_</ns0:JOB_ID>
 <ns0:SALARY>4</ns0:SALARY>
 <ns0:COMMISSION_PCT>32</ns0:COMMISSION_PCT>
 <ns0:MANAGER_ID>2</ns0:MANAGER_ID>
 <ns0:DEPARTMENT_ID>81</ns0:DEPARTMENT_ID>
 </ns0:RECORDSET>
 <ns0:FILTER>FILTER_0</ns0:FILTER>
</ns0:Update>

Insert

<ns0:Insert xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
<ns0:RECORDSET>
<ns0:EMPLOYEESRECORDINSERT>
 <ns0:EMPLOYEE_ID InlineValue="InlineValue_0">10.4</ns0:EMPLOYEE_ID>
 <ns0:FIRST_NAME InlineValue="InlineValue_0">FIRST_NAME_0</ns0:FIRST_NAME>
 <ns0:LAST_NAME InlineValue="InlineValue_0">LAST_NAME_0</ns0:LAST_NAME>
 <ns0:EMAIL InlineValue="InlineValue_0">EMAIL_0</ns0:EMAIL>
 <ns0:PHONE_NUMBER InlineValue="InlineValue_0">PHONE_NUMBER_0</ns0:PHONE_NUMBER>
 <ns0:HIRE_DATE InlineValue="InlineValue_0">1999-05-31T13:20:00.000-05:00</ns0:HIRE_DATE>
 <ns0:JOB_ID InlineValue="InlineValue_0">JOB_ID_0</ns0:JOB_ID>
 <ns0:SALARY InlineValue="InlineValue_0">10.4</ns0:SALARY>
 <ns0:COMMISSION_PCT InlineValue="InlineValue_0">10.4</ns0:COMMISSION_PCT>
 <ns0:MANAGER_ID InlineValue="InlineValue_0">10.4</ns0:MANAGER_ID>
 <ns0:DEPARTMENT_ID InlineValue="InlineValue_0">10.4</ns0:DEPARTMENT_ID>
 </ns0:EMPLOYEESRECORDINSERT>
 </ns0:RECORDSET>
 <ns0:COLUMN_NAMES>COLUMN_NAMES_0</ns0:COLUMN_NAMES>
 <ns0:QUERY>QUERY_0</ns0:QUERY>
</ns0:Insert>

Delete

<ns0:Delete xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
 <ns0:FILTER>FILTER_0</ns0:FILTER>
</ns0:Delete>

部署BizTalk Project

1. 使用File适配器配置接收端口,使用WCF-Oralce适配器配置发送端口,具体方法与上一篇配置SQL的类似。

image30

2. [查看] 在Oracle当中创建一个工作人员表,在其创建几个员工信息,之后实例化一个查询名叫King的员工信息的消息。

<Select xmlns="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
 <COLUMN_NAMES>*</COLUMN_NAMES>
 <FILTER>where LAST_NAME='King'</FILTER>
</Select>

 

3. 把上述消息扔到In文件夹中,经过BizTalk处理后,会按照消息中的条件到Oracle数据库中查询到King的信息并以XML的格式返回给Out文件夹。

image5[1]

4. 看一下在数据库当中King的员工信息。

image15[1]

5. [更新] 创建一个用来跟新数据库的XML消息,将其扔到In文件夹当中,BizTalk会根据消息来对Oracle数据库中相应的消息进行更新操作。

<Update xmlns="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
<RECORDSET>
 <EMAIL>JAKING</EMAIL>
 </RECORDSET>
 <FILTER>EMPLOYEE_ID=156</FILTER>
</Update>

 

6. 在数据库中查看更新结果。

image30[1]

7. [插入] 创建一个将要插入到数据库的消息,并扔到In文件夹中,BizTalk根据消息内容将其插入到员工表当中。

<Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
<RECORDSET>
<EMPLOYEESRECORDINSERT>
 <EMPLOYEE_ID>207</EMPLOYEE_ID>
 <FIRST_NAME>Steef-Jan</FIRST_NAME>
 <LAST_NAME>Wiggers</LAST_NAME>
 <EMAIL>SWIGGERS</EMAIL>
 <PHONE_NUMBER>0123456789</PHONE_NUMBER>
 <HIRE_DATE>1999-05-31</HIRE_DATE>
 <JOB_ID>IT_PROG</JOB_ID>
 <SALARY>100000</SALARY>
 <COMMISSION_PCT>0.35</COMMISSION_PCT>
 <MANAGER_ID>100</MANAGER_ID>
 <DEPARTMENT_ID>60</DEPARTMENT_ID>
 </EMPLOYEESRECORDINSERT>
 </RECORDSET>
</Insert>

 

8. 数据库的测试结果。

image40

9. [删除] 创建一个消息,将该消息扔到In文件夹当中,经过BizTalk处理之后,会根据消息中的内容删除Oracle数据库中的消息。

<Delete xmlns="http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES">
 <FILTER>EMPLOYEE_ID=207</FILTER>
</Delete>

 

10. 数据库的测试结果。

image50

 

测试完成,测试结果证明BizTalk Server 2010中的适配器完全支持Oracle 11g Release 2版本,文章中没有浪费时间说太多,有没写清楚的地方请谅解,并可以在下方评论处一起交流。

原文地址:https://www.cnblogs.com/hainange/p/6153605.html