看板 java 關於我們 聯絡資訊
大家好 可能是我表達的不好,非常抱歉 我是想將字串傳入資料庫 可是這個欄位只接受20byte 但是字串有中文英文 有可能會發生當第19byte是英文 第20byte是中文,這時中文就會被切開造成錯誤 所以想請問大家有沒有辦法判斷這種情形時,就將第20byte的中文自動存入下一筆資料中 感謝大家的回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.187.69 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1493079247.A.55D.html
ssccg: 為什麼要把資料庫欄位開不夠大? 沒辦法想像資料太長時是切 04/25 09:33
ssccg: 到下一個row的use case,另外資料庫的編碼跟Java又是另一回 04/25 09:34
ssccg: 事了,如果是UTF-8中文是3 byte 04/25 09:36
XDXQQ: 因為無法開大,所以才會想在java層解決@@ 04/25 10:03
swpoker: oracle db有分位元跟字元兩種,不知道你是用哪種? 04/25 10:47
XDXQQ: 我是用mssql,不過基本上sql那塊是無法修改的 04/25 10:48
ssccg: 切成很多row也不能說是在java層解決吧,在資料庫中原本屬於 04/25 11:27
ssccg: 同一筆資料的就直接拆成多個row了,你其他欄位是打算怎麼處 04/25 11:28
ssccg: 理? key可以用重複的嗎? 還是同一筆變成多個不同key的row? 04/25 11:29
ssccg: 個人看法是: 資料庫絕對不能動的話,就是說原結構定義是絕 04/25 11:33
ssccg: 對的,那欄位不可能出現超過長度的字串,你的資料根本不該 04/25 11:34
ssccg: 存到該table... 04/25 11:36
XDXQQ: 其他欄位是造原本的就好 04/25 12:10
XDXQQ: 沒有pk問題 04/25 12:10
ssccg: 反正你要這樣做就做吧,記得要用資料庫的編碼來算長度就是 04/25 13:51
XDXQQ: 感謝回答~ 04/25 18:22
Lordaeron: 答案不是給過了? 又問一次是? 04/25 20:51
Jichang: 不用那麼麻煩 在開一個表格 原本那格改填FK 04/27 10:01
pttnews: DATA TYPE : NVARCHAR 04/28 16:33
jej: 每個字getByte 長度超過20的那個字另寫 05/03 19:58
eieio: 切開來會怎樣嗎?讀的時候接回去不就好了嗎? 05/06 14:58