SQLServer解析xml到Oracle
写了一个程序:根据状态位读取SQLserver 中的一张表,下载其中一个字段的值,这个值是XML类型的,然后把这个XML文件的内容插入到另一Oracle数据库,并更新SQLServer表的标志位,表示这条记录已经更新过。
我的思路是用java写个webservice,然后再用C#写个windows 服务每过30分钟运行一次。用java写业务是因为我觉得java操作oracle相对方便一点。用C#写windows服务是是因为我只知道能用C#写windows service,后台静默运行挺好。
看似简单的程序,最后真正实现需求居然也花了3天时间,因为遇到了几个小问题,并且还有未解决的。
接下来罗列一下遇到的问题。
Q1 java解析XML内容
已解决:参考http://www.ibm.com/developerworks/cn/xml/dm-1208gub/index.html
用的是第一种DOM方法
Q2 java jdbc连接Oracle数据库问题
已解决:关键代码如下
String driverClassName = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@//192.168.101.22:1521/orcl";
注意,java代码里的sql语句最后不要写分号,否则会报错 java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 。
Q3 java 怎么写一个webservice
已解决:
参考:http://javapapers.com/web-service/java-web-service-using-eclipse/
写好java 类以后(Dynamic Web Project工程下),直接右击新建webservice。
需要注意的是,要生成的方法必须是小写字母开头的,否则就无法调用了。java里方法要小写开头!
我用java 写好了一个Service类。接下来就是
Q4 下载好了XML文件,然后在解析这个XML文件时,发生了异常:
xml中1字节的UTF-8序列的字节1无效([字符编码]Invalid byte 1 of 1-byte UTF-8 sequence
引起这个问题的原因是,java下载XML文件默认编码格式是GBK,而我们用DOM去解析xml文件的时候,用的是UTF-8的方式去解析,编码对不上,所以不能识别xml文档。
http://bbs.itheima.com/thread-29901-1-1.html
http://blog.csdn.net/zhangzhikaixinya/article/details/7727938 这种方法我没试过
代码实现
/**
* 写日志
* @param logpath 日志文件路径
* @param logtext 日志内容
*/
public void WriteLog(String logpath,String logtext)
{
File file = new File(logpath); try
{
//Writer out = new FileWriter(file,true);
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file, true),"utf-8");
out.write(logtext);
out.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
写文件指定UTF-8编码
Q5 写好了程序,发布本地,测试通过,发布到远程服务器上,调用提示404 找不到资源。我用C#调用的java webservice。
未解决……
暂时就本地运行。
SQLServer解析xml到Oracle的更多相关文章
- oracle解析xml完成版第二次修改
其实XML字符串就好像是ORACLE中的外部表,因此Oracle对 解析XML字符串一些规则要求非常严格.XML字符串提供的数据就是一张表,所以Oracle必须提供跟 xml数据一致的列头 示例一 S ...
- Oracle解析 xml 记录一下(未完待续)
Oracle解析 xml 记录一下. SQL> desc xmlparser; PROCEDURE FREEPARSER Argument Name Type ...
- 【java项目实战】dom4j解析xml文件,连接Oracle数据库
简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...
- CSS控制XML与通过js解析xml然后通过html显示xml中的数据
使用CSS控制XML的显示 book.css bookname{ display:block;color:Red} author{ display:block;font-style:italic} p ...
- JDOM,dom4j方式解析XML
<?xml version="1.0" encoding="UTF-8"?> <dataSources> <!-- 定义MySQL ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- OAF_文件系列5_实现OAF解析XML文件javax.xml.parsers(案例)
20150729 Created By BaoXinjian
- 应用SQLServer For XML 生成XML避免在C# 拼字符串
最近在Review代码时,有一个功能是 查询数据库中一列,然后生成像 <rootelements> <col>a</col> <col&g ...
- Java解析XML三种常用方法
1.使用DOM方式解析: package com.wzh.dom; import java.util.Iterator; import javax.xml.parsers.DocumentBuilde ...
随机推荐
- 将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑
将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑 /** * 根据传入字符串 * * @param str 传入的日期字符串 形如:Oct 8, 2016 5:29 ...
- windows+caffe(七)——ComputeImageMean.bat
1.首先我们使用lmdb数据格式(怎样得到lmdb数据格式,看我的另一篇)求得均值: 新建ComputeImageMean.bat,里面输入: D:/deeptools/caffe-windows-m ...
- Spring源代码解析
Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.itey ...
- solr 4.4添加索引是新手容易遇到的问题
solr 4.4添加索引是新手容易遇到的问题异常一.Exception in thread "main" java.lang.NoClassDefFoundError: org/a ...
- flag+文件操作
flag标志位,标识位,在其他语言中可能叫开关,个人觉得当作开关更容易理解.下面我们来利用这个开关来控制文件操作的流程,从而优雅的修改配置文件. global log 127.0.0.1 local2 ...
- 向STM32 CUBE MX 生成的工程里移植stemwin
我参考这个文章做的: http://bbs.armfly.com/read.php?tid=1678 这次添加的是没有os的版本 另外跟用不用hal库没关系 1. keil自带了emwin 2. 用c ...
- [DataBase] MongoDB (8) 副本集
MongoDB 创建副本集 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从 ...
- tensorflow安装日志(PIP)
最近刚刚接触深度学习,安装一下tf 环境:华硕Z170主板.i7 6700k.GTX1070.Ubuntu16.04.Python2.7 在这之前先装好了cuda8.0.cudnn5.0.caffe整 ...
- 微信小程序-数据缓存
每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearSt ...
- 求空间内两条直线的最近距离以及最近点的坐标(C++)
关键词:空间几何 用途:总有地方会用到吧 文章类型:C++函数展示 @Author:VShawn(singlex@foxmail.com) @Date:2016-11-19 @Lab: CvLab20 ...