SQLServer解析xml到Oracle

來源:互聯網
上載者:User

標籤:

寫了一個程式:根據狀態位讀取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 這種方法我沒試過

代碼實現

 1     /** 2      * 寫日誌 3      * @param logpath  記錄檔路徑 4      * @param logtext  日誌內容 5      */ 6     public void  WriteLog(String logpath,String logtext) 7     { 8         File file = new File(logpath); 9         10         try11         {12             //Writer out = new FileWriter(file,true);13             OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file, true),"utf-8");14             out.write(logtext);15             out.close();16         } catch (IOException e)17         {18             // TODO Auto-generated catch block19             e.printStackTrace();20         }21     }
寫檔案指定UTF-8編碼

 

Q5 寫好了程式,發布本地,測試通過,發布到遠程伺服器上,調用提示404 找不到資源。我用C#調用的java webservice。

未解決……

暫時就本地運行。

 

SQLServer解析xml到Oracle

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.