今天在調試程序中,遇到一個“
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 閱讀(2376)
評論(2) 編輯 收藏 所屬分類:
數據庫相關