隨筆-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 閱讀(2380) 評論(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

          謝謝!確實簡單了。
            回復  更多評論
            
          主站蜘蛛池模板: 灵川县| 自治县| 高雄市| 高碑店市| 巨鹿县| 齐河县| 尼勒克县| 曲沃县| 库伦旗| 合川市| 石首市| 安多县| 四川省| 四会市| 衢州市| 南开区| 山丹县| 大渡口区| 焦作市| 新建县| 岢岚县| 武隆县| 大连市| 汪清县| 邵东县| 固安县| 浦北县| 保亭| 漯河市| 东乡族自治县| 中西区| 哈尔滨市| 张家界市| 中卫市| 赤城县| 太和县| 琼结县| 米易县| 梁山县| 涟源市| 鲁山县|