• 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版本,文章中没有浪费时间说太多,有没写清楚的地方请谅解,并可以在下方评论处一起交流。

  • 相关阅读:
    启动dr-elephant失败问题
    hive2.3 任务因一个map导致进程oom挂掉的排查
    hive客户端远程debug
    jdk命令行工具
    hadoop联邦集群 Hive 服务不重启udf函数生效
    livy server高并发下报错java.lang.RuntimeException: java.io.IOException: Unable to connect to provided ports 10000~10010
    使用apache livy导致的结果集不一致问题记录
    spark与hive引擎差异致结果集不一致
    mysql终止当前正在执行的sql语句
    Linux 修改文件目录权限
  • 原文地址:https://www.cnblogs.com/hainange/p/6153605.html
Copyright © 2020-2023  润新知