WMB这方面的资料少的可怜,几乎是找不到,.  我既然是WMB开发者的一员,.尽情的分享自己的经验.

写一个小小WMB连接数据库实例,  帮助自己也方便大家,.

废话不多说.直奔主题..

在使用ODBC连接数据库之前,.大概需要如下步骤:

1.安装oracle数据库.  安装好之后,并且建立表,比如我建立两个表;

表一:CUSTOMER表;两个字段.

CUST_ID         VARCHAR2(6),
CUST_NAME    VARCHAR2(6)

并且给表插入值:

CUST_I         CUST_NAME
------ -           ------------------
100001         周海涛

100002         张三

100003         李四

表二:RECORDS(记录表)字段如下:

ID                             NOT NULL VARCHAR2(6)
 NAME                        NOT NULL VARCHAR2(40)
 ADDRESS                  NOT NULL VARCHAR2(60)
 AMOUNT1                                  NUMBER(8,2)

AMOUNT2                                  NUMBER(8,2)

2.配置ODBC数据源.

在配置数据源之前,需要启动oracle 实例服务及 监听服务.

控制面板->管理工具->ODBC数据源->系统DSN->添加->

数据驱动选择:Message Broker DataDirect Technologies 6.0 32 BIt Oracle Wire Protocol.

点击完成.

需要输入:

Dat Source Name数据源名称,任意即可.

Description  描述.可以不输入.

Host:           数据主机地址,或者远程的IP地址.

Port Number:端口号,默认为1521.

SID:             实例名称,比如ORCL

点击Test Connect 连接测试,输入用户名和密码 ,这里我测试的用户是scott用户,密码tiger;

提示:Connection established 已建立连接.表示连接成功..

3.使用MQSI命令设置把ODBC设置到broker代理中..并且指定数据源, 用户名,密码.

在cmd直接切换到 C:\Program Files\IBM\MQSI\7.0>目录或者是在直接WMB中找到命令管理器.

输入,
--设置连接数据源参数; exebroker -代表代理, -n DBDATASOURCE 代表数据源, -u scott代表用户名, -p 代表密码;
C:\Program Files\IBM\MQSI\7.0>mqsisetdbparms exebroker -n DBDATASOURCE -u scott -p tiger
BIP8071I: 命令成功完成。

4.建立Message Flow项目,建立Message Flow,搭建主流程.

插入数据子流程:

5.这是主流程ESQL语句.

Sql代码  
  1. BROKER SCHEMA main
  2. --判断;
  3. CREATE FILTER MODULE Exe4_Compute_Main_Filter
  4. CREATE FUNCTION Main() RETURNS BOOLEAN
  5. BEGIN
  6. --如果地址是上海市,返回TRUE,否则返回FALSE;
  7. IF  Environment.Variables.address = '上海市' THEN
  8. RETURN TRUE;
  9. ELSE
  10. RETURN FALSE;
  11. END IF;
  12. END;
  13. END MODULE;
  14. --查询数据;写入XML文件.
  15. CREATE COMPUTE MODULE Exe4_Compute_Main_Search
  16. CREATE FUNCTION Main() RETURNS BOOLEAN
  17. BEGIN
  18. DECLARE tempName CHARACTER;
  19. --从数据库中获取Name字段;
  20. SET tempName = THE(SELECT ITEM T.CUST_NAME FROM Database.CUSTOMER AS T WHERE T.CUST_ID = InputRoot.XML.record.id);
  21. --去空格;
  22. SET tempName = TRIM(BOTH  ' ' FROM tempName);
  23. --创建record节点;
  24. CREATE FIELD OutputRoot.XML.record;
  25. --引用record节点;
  26. DECLARE outputRecord REFERENCE TO OutputRoot.XML.record;
  27. --创建record下面的子节点;
  28. SET outputRecord.id = InputRoot.XML.record.id ;
  29. SET outputRecord.name = tempName;
  30. SET outputRecord.address  = InputRoot.XML.record.address;
  31. SET outputRecord.amount1 = InputRoot.XML.record.amount1;
  32. SET outputRecord.amount2 = InputRoot.XML.record.amount2;
  33. --把地址设置到环境变量中;
  34. SET Environment.Variables.address = InputRoot.XML.record.address;
  35. SET Environment.Variables.record = OutputRoot.XML.record;
  36. RETURN TRUE;
  37. END;
  38. CREATE PROCEDURE CopyEntireMessage() BEGIN
  39. SET OutputRoot = InputRoot;
  40. END;
  41. END MODULE;

这个是输入插入子流程Database节点中的ESQL代码:

Sql代码  
  1. BROKER SCHEMA bussess.subflow
  2. --插入数据到数据库中;
  3. CREATE DATABASE MODULE Exe4_Compute_DB_Subflow_Database
  4. CREATE FUNCTION Main() RETURNS BOOLEAN
  5. BEGIN
  6. --引用OutputRoot中的数据;
  7. DECLARE oututRecords REFERENCE TO Environment.Variables.record;
  8. --插入数据到数据库中,数据来自于之前读取XML中的数据;
  9. INSERT INTO  Database.RECORDS(ID,NAME,ADDRESS,AMOUNT1,AMOUNT2) VALUES (oututRecords.id,oututRecords.name,oututRecords.address,CAST(oututRecords.amount1 AS DECIMAL(8,2)),CAST(oututRecords.amount2  AS DECIMAL(8,2)));
  10. RETURN TRUE;
  11. END;
  12. END MODULE;

6.部署,归档.发布,.然后 测试是否通过。

测试的时候,使用的是rfhutil.exe工具进行测试,

读取的本地的一个record1.xml文件

内容如下:

<record> <id>100001</id> <address>南京市</address> <amount1>560.00</amount1> <amount2>300.00</amount2> </record>

如果通过,则会在数据中成功插入一条数据.

SQL> select * from records;

ID                 NAME                       ADDRESS                              AMOUNT1                            AMOUNT

------    ---------------------------- ------------------------------           -------------------                 ---------- ------

100001         周海涛                   南京市                                        560.00                     300.00

  • 大小: 11 KB
  • 大小: 5.5 KB
  • WMB7_LAB4.rar (7.7 KB)

WMB 使用Compute节点连接Oracle数据库实例相关推荐

  1. CentOS Linux 新建oracle数据库实例并连接

    CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...

  2. c# 操作oracle数据库,C#连接oracle数据库增删改查实例

    [实例简介] C#连接oracle数据库,增删改查实例,OracleParameter防Sql注入等,适用于新手学习 [实例截图] [核心代码] 5868e8be-414a-4138-8390-2fb ...

  3. oracle10数据库链接失败,oracle 10g Enterprise Manager 无法连接到数据库实例分析

    1 问题描述 客户端通过IE 浏览器登陆oracle 10g em console时不能显示登陆界面,页面显示"Enterprise Manager 无法连接到数据库实例.下面列出组件状态& ...

  4. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法

    Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...

  5. cmd oracle 连接实例_cmd怎么连接oracle数据库

    Oracle中使用数据库的最高权限 我们知道,Oracle数据库中有比如SYSTEM这类用户,但它不是最高权限,有些操作无法进行.会出现权限不足的提示. 那么我们怎么利用最高权限登录呢? 方法一 ①打 ...

  6. Oracle数据库实例之进程架构(二)

    Oracle数据库实例之进程架构(二) 必需的后台进程 PMON PMAN LREG SMON DBW LGWR CKPT MMON & MMNL RECO 可选的后台进程 ARCn CJQ0 ...

  7. .Net Web应用程序在Iss发布后无法连接oracle数据库

    老问题,新状况 ------.Net Web应用无法连接Oracle问 关于.Net 应用无法连接Oracle数据库,从来不是什么新问题,而是一个经常困扰程序部署人员的痼疾,从遥远的过去到现在,它时不 ...

  8. 连接oracle数据库 ip,oracle 设置ip连接数据库

    使用E-MapReduce集群sqoop组件同步云外Oracle数据库数据到集群hive E-MapReduce集群sqoop组件可以同步数据库的数据到集群里,不同的数据库源网络配置有一些差异网络配置 ...

  9. java ojdbc 还需要装 oracle client 吗,c# 连接Oracle数据库必须安装客户端吗

    使用 ODAC 的 Net 方式 [email]nxyc_twz@163.com[/email] 大多数应用程序使用 OCI 的ODAC 标准方式来连接 Oracle 数据库服务器.这是使用第三方开发 ...

  10. 2. Oracle 数据库实例启动关闭过程

    转载自: http://blog.csdn.net/leshami/article/details/5542983 Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行 ...

最新文章

  1. 强化学习入门教程(附学习大纲)
  2. TP-LINK、迅捷等品牌路由器存在质量问题
  3. python基础练习(八)
  4. 计算机计算exp函数原理,exp()函数的数值计算中的系数
  5. python-redis连接管理
  6. 运行中SQL Server查询存储
  7. Access导入Sql 2008 R2 错误 0xc020801c
  8. 利用jieba进行中文分词并进行词频统计
  9. Ajax 重新绑定 webgrid 数据,绑定的WebGrid形式AJAX(Bind WebGrid form AJAX)
  10. NS3:FlowMonitor设计讲解
  11. 计算机硬盘检测和修复工具,教你怎么使用硬盘检测修复工具教程
  12. ES3之cookie
  13. systemctl开机启动设置
  14. S5P4418裸机开发(六):串口初试,简单回显(轮询模式)
  15. 服务器经常被攻击怎么办?这7个重要因素要做好!
  16. 聊聊C++标准库,准标准库中关于时间的概念和用法
  17. Centos文件上传,并用Compose, Dockerfile部署容器
  18. IOC容器中bean的生命周期,iocbean生命周期
  19. 借助新电商平台,湖北荷塘三宝直达全国餐桌
  20. proe服务器高速缓存位置,Proe优化设置教程,教你proe提高显示速度及质量的设置方法...

热门文章

  1. java unexpected token解决方法
  2. 电商(一) 创建订单业务流程
  3. Android黑科技之微信语音助手-长辈关怀利器
  4. mangos修改服务器版本,Mangos魔兽私服服务端GM命令代码集参考
  5. 差点被祭天!狂欢618,且看研发人如何绝地求生
  6. Windows系統修改MAC地址的方法
  7. 国际足联还不考虑在中国办一届世界杯吗?
  8. 解决ubuntu16.04无法打开网易云音乐
  9. polkit启动失败_zabbix4.4 启动失败分析
  10. 全球货币市场基础知识系列4