我有一個通過Web服務獲取數據的程序,其中一些數據似乎是一個格式問題。在Oracle中處理¿
例如,我獲取「XYZ¿ABC」等數據。
問題是我期待收到的數據長度定義爲VARCHAR2(9 BYTE)。
在我的Java程序中,我可以看到數據的長度是9,但在嘗試在Oracle端插入數據時,我得到一個字段長度不匹配錯誤(其中Oracle將它視爲10)。
我改變了我的程序讀取在ANSI格式的數據很好,但問題依然存在。
請告知,如果有一些改變,我應該讓我的程序來處理這個(想法之一是在Oracle端使用子字符串,並將傳入的數據限制爲9字節,但我不想這樣做,因爲在這種情況下我可能會丟失一些數據)
關心。
''¿'通常表示字符集轉換問題。什麼是你想要處理的正確的字符串? Oracle數據庫中的字符集是什麼? – sstan
該數據的長度是9個字符,但字節數取決於編碼。在UTF-8中,它是10個字節。您應該決定是否要在插入之前更改字段的定義或清理數據。 – RealSkeptic
''是一個字符的地方持有人,不能存儲在您的數據庫或您的客戶端無法存儲。你的數據庫字符集是什麼,你期望輸出什麼? –