2012-11-22 103 views
0

當我使用GZIPOutputStream或DeflaterOutputStream進行壓縮時,垃圾數據存儲在clob數據類型中。壓縮java中的oracle clob數據類型

我的Oracle字符集是WE8ISO8859P1,但同一段代碼正在與US7ASCII字符集

任何想法?

+0

請詳細描述您的過程。您是否試圖將壓縮數據(二進制)存儲到CLOB(字符)列?當你說它有效時它意味着什麼/它不起作用? –

+0

你也可以告訴我們你的類路徑。即你使用哪個版本的Oracle + Oracle jar文件。你能否驗證你是否已經鏈接到orai18n.jar中,或者嘗試過與鏈接在處理字符集/全球化支持時所需的鏈接。 – DazzaL

+0

@ Vincent Malgrat:是的,你說的是正確的。壓縮數據存儲在Clob列中。它不起作用的意思,在我將壓縮數據更新到Clob列後,垃圾數據存儲在Clob列中。但我並沒有理解爲什麼這在US7ASCII字符集數據庫中工作 – srinannapa

回答

1

也許你應該使用BLOB。 CLOBS旨在存儲不是你所擁有的角色數據。在存儲到CLOB中之前,您可以通過base64對gzip數據進行編碼來測試這一點。這應該可行,但可能不是一個很好的解決方案,因爲Base64會將有效負載的大小增加約30%。

+0

任何想法,爲什麼這是在US7ASCII字符集數據庫中工作。此表實際上正在遷移到另一個有WE8ISO8859P1的數據庫,其中我的場景失敗 – srinannapa

+0

很可能是因爲您以某種方式使用功能而不打算使用該功能。結果你會得到奇怪的行爲。 –