隨筆-8  評論-39  文章-0  trackbacks-0

          今天在調試程序中,遇到一個“ ORA-03115: unsupported network datatype or representation ”的錯誤。問題已經解決,有一些心得體會。

          ?

          環境:

          Oracle 8.17 數據庫一臺, Oracle 9i 數據庫一臺,兩者間建有一個 DBLink 將相關的 shema 連接起來。在 Oracle 9i 這一端有一個 Table A, 如下:

          ?

          Field Name

          Field Type

          ……

          …..

          confirm_time

          Timestamp

          ?

          creation_time

          Date

          ?

          ……

          ?

          情景:

          有一個 Java 程序通過 JDBC 連接到 Oracle 8 那一端,現在這個應用程序需要通過 DBLink 訪問 Oracle 9i 中的 Table A. 寫下如下的查詢語句:

          ?

          select nvl(confirm_time, creation_time) from A@.....

          ?

          該語句在 SQL Plus PL/SQL Developer )中執行能夠完成并返回正確的結果,但將該語句放入 PreparedStatement 執行是,卻得到錯誤:“ ORA-03115: unsupported network datatype or representation

          ?

          原因分析:

          Oracle 8 中還不存在 Timestamp 這樣的數據類型,而無論是字段 confirm_time, 還是表達式 nvl(confirm_time, creation_time) 返回的都是 Timestamp 類型,故會得到 ORA-03115 的錯誤。(在 PL/SQL Developer 中為何不出錯就不知道了,呵呵 …. 見笑見笑啦)

          ?

          解決方法:

          SQL 語句中將 Timestamp 轉化為 Date 類型,如:

          ?

          select nvl(to_date(to_char(confirm_time, “yyyy-mm-dd hh24:mi:ss”), “yyyy-mm-dd hh24:mi:ss”), creation_time) from A@........

          ?

          ?

          ?

          posted on 2007-02-08 07:37 Jini 閱讀(2381) 評論(2)  編輯  收藏 所屬分類: 數據庫相關

          評論:
          # re: 在Oracle8中通過DBLink存取Oracle9中Timestamp類型的問題 2007-04-18 16:03 | Freed
          費勁了點,cast(timestamp as date)就可以了。  回復  更多評論
            
          # re: 在Oracle8中通過DBLink存取Oracle9中Timestamp類型的問題 2007-04-18 16:28 | Jini
          @Freed

          謝謝!確實簡單了。
            回復  更多評論
            
          主站蜘蛛池模板: 安福县| 鄄城县| 沙田区| 武汉市| 林西县| 疏勒县| 苗栗县| 庆城县| 阿克苏市| 柳林县| 公主岭市| 滕州市| 海淀区| 霸州市| 荔浦县| 兴仁县| 巴塘县| 钟祥市| 商城县| 仙游县| 昆山市| 台湾省| 黔南| 南充市| 界首市| 辽宁省| 贵德县| 德兴市| 乌拉特中旗| 麻阳| 长乐市| 开阳县| 太原市| 濮阳县| 和田市| 司法| 嘉义市| 瓦房店市| 绍兴县| 交口县| 扎赉特旗|