WMB 使用Compute节点连接Oracle数据库实例
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语句.
- BROKER SCHEMA main
- --判断;
- CREATE FILTER MODULE Exe4_Compute_Main_Filter
- CREATE FUNCTION Main() RETURNS BOOLEAN
- BEGIN
- --如果地址是上海市,返回TRUE,否则返回FALSE;
- IF Environment.Variables.address = '上海市' THEN
- RETURN TRUE;
- ELSE
- RETURN FALSE;
- END IF;
- END;
- END MODULE;
- --查询数据;写入XML文件.
- CREATE COMPUTE MODULE Exe4_Compute_Main_Search
- CREATE FUNCTION Main() RETURNS BOOLEAN
- BEGIN
- DECLARE tempName CHARACTER;
- --从数据库中获取Name字段;
- SET tempName = THE(SELECT ITEM T.CUST_NAME FROM Database.CUSTOMER AS T WHERE T.CUST_ID = InputRoot.XML.record.id);
- --去空格;
- SET tempName = TRIM(BOTH ' ' FROM tempName);
- --创建record节点;
- CREATE FIELD OutputRoot.XML.record;
- --引用record节点;
- DECLARE outputRecord REFERENCE TO OutputRoot.XML.record;
- --创建record下面的子节点;
- SET outputRecord.id = InputRoot.XML.record.id ;
- SET outputRecord.name = tempName;
- SET outputRecord.address = InputRoot.XML.record.address;
- SET outputRecord.amount1 = InputRoot.XML.record.amount1;
- SET outputRecord.amount2 = InputRoot.XML.record.amount2;
- --把地址设置到环境变量中;
- SET Environment.Variables.address = InputRoot.XML.record.address;
- SET Environment.Variables.record = OutputRoot.XML.record;
- RETURN TRUE;
- END;
- CREATE PROCEDURE CopyEntireMessage() BEGIN
- SET OutputRoot = InputRoot;
- END;
- END MODULE;
这个是输入插入子流程Database节点中的ESQL代码:
- BROKER SCHEMA bussess.subflow
- --插入数据到数据库中;
- CREATE DATABASE MODULE Exe4_Compute_DB_Subflow_Database
- CREATE FUNCTION Main() RETURNS BOOLEAN
- BEGIN
- --引用OutputRoot中的数据;
- DECLARE oututRecords REFERENCE TO Environment.Variables.record;
- --插入数据到数据库中,数据来自于之前读取XML中的数据;
- 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)));
- RETURN TRUE;
- END;
- 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数据库实例相关推荐
- CentOS Linux 新建oracle数据库实例并连接
CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...
- c# 操作oracle数据库,C#连接oracle数据库增删改查实例
[实例简介] C#连接oracle数据库,增删改查实例,OracleParameter防Sql注入等,适用于新手学习 [实例截图] [核心代码] 5868e8be-414a-4138-8390-2fb ...
- oracle10数据库链接失败,oracle 10g Enterprise Manager 无法连接到数据库实例分析
1 问题描述 客户端通过IE 浏览器登陆oracle 10g em console时不能显示登陆界面,页面显示"Enterprise Manager 无法连接到数据库实例.下面列出组件状态& ...
- Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...
- cmd oracle 连接实例_cmd怎么连接oracle数据库
Oracle中使用数据库的最高权限 我们知道,Oracle数据库中有比如SYSTEM这类用户,但它不是最高权限,有些操作无法进行.会出现权限不足的提示. 那么我们怎么利用最高权限登录呢? 方法一 ①打 ...
- Oracle数据库实例之进程架构(二)
Oracle数据库实例之进程架构(二) 必需的后台进程 PMON PMAN LREG SMON DBW LGWR CKPT MMON & MMNL RECO 可选的后台进程 ARCn CJQ0 ...
- .Net Web应用程序在Iss发布后无法连接oracle数据库
老问题,新状况 ------.Net Web应用无法连接Oracle问 关于.Net 应用无法连接Oracle数据库,从来不是什么新问题,而是一个经常困扰程序部署人员的痼疾,从遥远的过去到现在,它时不 ...
- 连接oracle数据库 ip,oracle 设置ip连接数据库
使用E-MapReduce集群sqoop组件同步云外Oracle数据库数据到集群hive E-MapReduce集群sqoop组件可以同步数据库的数据到集群里,不同的数据库源网络配置有一些差异网络配置 ...
- java ojdbc 还需要装 oracle client 吗,c# 连接Oracle数据库必须安装客户端吗
使用 ODAC 的 Net 方式 [email]nxyc_twz@163.com[/email] 大多数应用程序使用 OCI 的ODAC 标准方式来连接 Oracle 数据库服务器.这是使用第三方开发 ...
- 2. Oracle 数据库实例启动关闭过程
转载自: http://blog.csdn.net/leshami/article/details/5542983 Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行 ...
最新文章
- 强化学习入门教程(附学习大纲)
- TP-LINK、迅捷等品牌路由器存在质量问题
- python基础练习(八)
- 计算机计算exp函数原理,exp()函数的数值计算中的系数
- python-redis连接管理
- 运行中SQL Server查询存储
- Access导入Sql 2008 R2 错误 0xc020801c
- 利用jieba进行中文分词并进行词频统计
- Ajax 重新绑定 webgrid 数据,绑定的WebGrid形式AJAX(Bind WebGrid form AJAX)
- NS3:FlowMonitor设计讲解
- 计算机硬盘检测和修复工具,教你怎么使用硬盘检测修复工具教程
- ES3之cookie
- systemctl开机启动设置
- S5P4418裸机开发(六):串口初试,简单回显(轮询模式)
- 服务器经常被攻击怎么办?这7个重要因素要做好!
- 聊聊C++标准库,准标准库中关于时间的概念和用法
- Centos文件上传,并用Compose, Dockerfile部署容器
- IOC容器中bean的生命周期,iocbean生命周期
- 借助新电商平台,湖北荷塘三宝直达全国餐桌
- proe服务器高速缓存位置,Proe优化设置教程,教你proe提高显示速度及质量的设置方法...