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

          謝謝!確實簡單了。
            回復  更多評論
            
          主站蜘蛛池模板: 阳谷县| 扎兰屯市| 平乐县| 江油市| 洛宁县| 乐都县| 东乌珠穆沁旗| 开平市| 宣恩县| 宜丰县| 自治县| 封丘县| 高陵县| 武义县| 大田县| 九龙城区| 龙里县| 海城市| 惠水县| 建宁县| 独山县| 巴彦县| 马尔康县| 平湖市| 洛阳市| 崇州市| 南宫市| 宝山区| 商洛市| 专栏| 通辽市| 建宁县| 溧阳市| 从化市| 织金县| 河池市| 宁都县| 慈溪市| 河东区| 田阳县| 嘉善县|