2010-07-16 84 views
1

我使用蹩腳的jdbc驅動程序連接到4D(第四維品牌)數據庫。JDBC:將Clobs轉換爲字符串不顯示 n行返回

我在數據庫上有一個CLOB,當我通過getString或getClob獲取它時,我沒有得到線返回,一切似乎都在一行。

但是,如果我確實在NetBeans數據庫瀏覽器上進行了選擇,並將該值複製並粘貼到編輯器上,那麼它會將\ n的值提取出來。

我注意到,而不是\ n \我得到字符13

有人知道爲什麼這些\ N線的回報不來,他們應該?

我使用Windows 7 64位

巴勃羅

+0

服務器是否在Linux上運行? CLOB是如何創建的 - 使用Linux進程? – 2010-07-16 18:30:06

+0

是服務器運行max os X – Pablo 2010-07-16 18:59:53

回答

0

在Windows中,行結束符爲\r,在Linux下它的\n。無論何時在不同系統之間交換文件,都會產生很大的混亂。

如果你看到錯誤的行結束符,你會想要轉換這些字符串。問題解決了。

+0

感謝Carl, 但netbeans如何選擇這個,我不知道?不會更容易在jdbc連接上設置一些編碼參數並忘記每個字符串的轉換? – Pablo 2010-07-16 18:59:22

+0

開源編程社區有一個傳統「接受多種格式,少產生」(或類似的東西)。將CR或LF當作行終止符是非常簡單的,然後無論哪一個進入,都可以使您的程序更加靈活。 – 2010-07-16 19:59:06

+0

至於轉換開關:如果它在某些數據庫中可用,我不會感到驚訝。但我認爲這不是一個好主意。如果您可以要求數據庫在每次訪問時來回檢查和轉換數據,那麼與在應用程序中一次性寫入數據之前持續清理數據相比,您創建的代碼更加無用。一旦你意識到潛在的問題,修復並不困難。 – 2010-07-16 20:01:52