Kettle+WebService+自动获取日期+xml解析并存入Oracle数据库
于2022年3月8日优化,操作更简单 新文章地址,可互应参考https://blog.csdn.net/RatherI/article/details/123350552https://blog.csdn.net/RatherI/article/details/123350552
Kettle 获取WebService数据 解析并存入Oracle数据库
工具
- kettle 9.1 (版本影响不大)
- oracle11g
官方模板
官方案例:E:\data-integration\samples\transformations
流程简介
- 通过 生成记录 生成入参
- 取巧 通过 变量替换 动态替换年月信息
- 通过 执行sql脚本 删除数据库的当前年月的数据,然后重新插入数据
- Web服务查询 请求WebService
- get data fro xml 解析xml 头数据
- 我这里因为回参未转义 所以用 JsScript代码 转义。也可以用字符串替换 来替换。或者有更好的方式欢迎留言
- get data fro xml 解析xml内容,需要对字段
- 表输出
遇到的问题
1. java.lang.IllegalArgumentException: Entity may not be null
对方提供的入参是 <ROOT><ND>2021</ND><YD>03</YD></ROOT>,然后就一直报错,他们也能查出来。就我查不出,可纳闷。
解决方式:在入参的时候 再包一层 <![CDATA[ 你的入参 ]]>
<![CDATA[<ROOT><ND>2021</ND><YD>03</YD></ROOT>]]>
2.kettle回参<;< > > 转义了,导致不能解析
问题:虽然这样解决了 但是还遇到一个问题没解决,就是如果回参的字段里包含'<' '>' 比如:<MC>材料(<100元)</MC> 还是会无法解析,这个和接口商有关 让他们在字段添加 <![CDATA[ 材料(<100元) ]]>,或者直接让他们转义
解决方式: 这里取巧了,不知道有没有更好地方式。 使用的JsScript代码 进行的转义,或者使用字符串替换 替换掉。
//Script here
var result = result;
var xmlInfo = result.replace(/</g,"<").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/
/g,"").replace(/>/g,">");
如果使用字符串替换,替换内容按自己需要修改
3.动态年月条件
因为项目需要做定时任务,所以需要根据变量进行动态查询。
解决方式:给定一个字符串,使用字符串替换,替换成变量。可以在运行的时候填参数。
点击运行后,选择变量,进行填参数
4. Kettle获取系统时间做动态年月
上边是测试或者手动执行使用,因为要做定时任务,所以需要获取系统时间。
设置成变量以后在运行作业的时候 先运行这个设置变量,把变量存储后 使用变量
配置过程/细节
通过 生成记录 生成入参
取巧 通过 变量替换 动态替换年月信息
通过 执行sql脚本 删除数据库的当前年月的数据,然后重新插入数据
Web服务查询 请求WebService
先上一张在页面访问的数据
get data fro xml 解析xml 头数据
*[name()='ExecQueryResponse']/*[name()='ExecQueryResult']
我这里因为回参未转义 所以用 JsScript代码 转义。也可以用字符串替换 来替换。
//Script here
var result = result;
var xmlInfo = result.replace(/</g,"<").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/
/g,"").replace(/>/g,">");
get data fro xml 解析xml内容,需要对字段
因为上一步传的值 是 xmlInfo
第二层解析
对回参数据:名称和XML路径 是一样 直接填回参的字段就可以
表输出
完活收工,如果有更好的方法可以留言一起分享学习
Kettle+WebService+自动获取日期+xml解析并存入Oracle数据库相关推荐
- oracle数据库日期格式的运算,修改oracle数据库日期格式
ORACLE SQL Developer日期显示格式设置 原文:ORACLE SQL Developer日期显示格式设置 ORACLE的SQL Developer工具默认的日期格式DD-MON-RR, ...
- 通过JAVA从高德地图URL连接获取json数据 解析并存入数据库的程序举例
首先 进入高德开放平台 按官网教程获取key 这里以杭州某区域车站信息举例 通过在线解析工具获取json格式的数据 通过此数据建立实体类 package geturl;import java.util ...
- oracle exp语句 按日期命名,Windows平台下Oracle数据库exp全备脚本,根据时间保留备份数及自动上备份至FTP...
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. @echo off SET ORACLE_SID=orcl SET NLS_LANG=AM ...
- Oracle数据库的自动锁介绍
DML Locks 行锁TX 行锁和并发性 行锁的存储 表锁TM 锁和外键 锁和没有索引的外键 锁和有索引的外键 DDL Locks 排它DDL锁 共享DDL锁 可中断解析锁 System Locks ...
- AxureRP 实战(四)如何自动获取电脑日期和时间
我们在做页面交互设计时,如何自动获取电脑的日期和时间呢?像下图这样,让设计的产品更有真实感: 以上图的日期时间格式为例:"YYYY-MM-DD hh:mm:ss" 首先,拖入文本标 ...
- 自动获取IP发生IP冲突的问题
自动获取IP,公司局域网内,今天突然出现IP冲突「IP地址与网络上的其他系统有冲突」,不能上网.把网络连接关了,在重新启动,可以上网2-3秒,然后又会出现IP冲突的提示,无法上网.使用计算机的操作系统 ...
- 详解ORACLE数据库硬解析、软解析、软软解析
概述 TOM大叔的调优书中说过一句话,大概意思就是:如果有人让我写本怎样让ORACLE性能最慢的书的话我会将取消绑定变量(bind variable)做为书的第一章和最后一章,可见绑定变量的重要性.而 ...
- 单元格等于计算机日期,《excel表格怎样自动填写日期》 Excel单元格中自动获取当前日期与时间...
在excel里如何在单元格内用快捷键使之显示当前日期或时间 Ctrl : 当前日期Ctrl Shift : 当前时间 EXCEL表格中只显示日期不要显示时间 右击"单元格格式"设置 ...
- java获取微信xml数据格式的文件_(5)微信二次开发 之 XML格式数据解析
1.首先理解一下html html的全名是:HyperText Transfer markup language 超级文本标记语言,html本质上是一门标记(符合)语言,在html里,这些标记是事先定 ...
最新文章
- Windows 终端神器 MobaXterm,免费版可以在公司环境下使用
- 【博客话题】我的Linux虽然年轻,但是已经喜欢上她了...
- spring 两次进入拦截器_Spring Boot+Redis 扛住,瞬间千次重复提交(实例)
- bzoj1007[HNOI2008]水平可见直线
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 80 Days(双向队列+尺取法)
- mysql 织梦 优化,优化分析:分享织梦搭建和后台优化设置
- spring框架的引入
- 如何判断脚本执行成功
- 统计字符串中每个字符的个数_C++程序设计——统计数字字符个数
- 实习成长之路:MySQL八:普通索引和唯一索引,应该怎么选择?
- PC微信防撤回多开补丁 v0.6
- Ubuntu 安装 Intel 显卡驱动
- DEDE源码分析与学习之二: member文件结构说明
- 142Echarts - 矩形树图(Disk Usage)
- 模拟器桥接模式下 WLAN 无法连接及安卓 7.0+ 无法抓包 HTTPS 的解决
- 清除90天苹果充值记录_王者荣耀安卓苹果跨系统角色转移服务,限量测试收费99元...
- 知道生产日期和保质期来计算有效期至的方法和代码
- Python爬虫(二十二)_selenium案例:模拟登陆豆瓣
- 绕过CDN查询真实IP
- 恒源云(GPUSHARE)_可构建AI的「AI」诞生?
热门文章
- ubuntu 18.04 网络图标不见的问题解决方案
- 永远的伊苏 2 Mac版 | 适用于MacOS10.15系统的经典游戏《永远的伊苏 2》中文版
- Discuz论坛实用留言签名代码
- 【vite+vue3】 多页面应用模式
- C# Firebird SQL 语句带参数书写
- python网站安全(一): XSS注入
- linux重定向多个文件,cat命令利用Linux重定向合并文件
- Nginx 反向代理、负载均衡、虚拟主机
- 给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单
- mybatis查询时间段数据