[問題] String分割問題

看板java作者 (傑洛尼莫)時間7年前 (2017/04/25 08:14), 編輯推噓2(2019)
留言21則, 8人參與, 最新討論串4/5 (看更多)
大家好 可能是我表達的不好,非常抱歉 我是想將字串傳入資料庫 可是這個欄位只接受20byte 但是字串有中文英文 有可能會發生當第19byte是英文 第20byte是中文,這時中文就會被切開造成錯誤 所以想請問大家有沒有辦法判斷這種情形時,就將第20byte的中文自動存入下一筆資料中 感謝大家的回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.187.69 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1493079247.A.55D.html

04/25 09:33, , 1F
為什麼要把資料庫欄位開不夠大? 沒辦法想像資料太長時是切
04/25 09:33, 1F

04/25 09:34, , 2F
到下一個row的use case,另外資料庫的編碼跟Java又是另一回
04/25 09:34, 2F

04/25 09:36, , 3F
事了,如果是UTF-8中文是3 byte
04/25 09:36, 3F

04/25 10:03, , 4F
因為無法開大,所以才會想在java層解決@@
04/25 10:03, 4F

04/25 10:47, , 5F
oracle db有分位元跟字元兩種,不知道你是用哪種?
04/25 10:47, 5F

04/25 10:48, , 6F
我是用mssql,不過基本上sql那塊是無法修改的
04/25 10:48, 6F

04/25 11:27, , 7F
切成很多row也不能說是在java層解決吧,在資料庫中原本屬於
04/25 11:27, 7F

04/25 11:28, , 8F
同一筆資料的就直接拆成多個row了,你其他欄位是打算怎麼處
04/25 11:28, 8F

04/25 11:29, , 9F
理? key可以用重複的嗎? 還是同一筆變成多個不同key的row?
04/25 11:29, 9F

04/25 11:33, , 10F
個人看法是: 資料庫絕對不能動的話,就是說原結構定義是絕
04/25 11:33, 10F

04/25 11:34, , 11F
對的,那欄位不可能出現超過長度的字串,你的資料根本不該
04/25 11:34, 11F

04/25 11:36, , 12F
存到該table...
04/25 11:36, 12F

04/25 12:10, , 13F
其他欄位是造原本的就好
04/25 12:10, 13F

04/25 12:10, , 14F
沒有pk問題
04/25 12:10, 14F

04/25 13:51, , 15F
反正你要這樣做就做吧,記得要用資料庫的編碼來算長度就是
04/25 13:51, 15F

04/25 18:22, , 16F
感謝回答~
04/25 18:22, 16F

04/25 20:51, , 17F
答案不是給過了? 又問一次是?
04/25 20:51, 17F

04/27 10:01, , 18F
不用那麼麻煩 在開一個表格 原本那格改填FK
04/27 10:01, 18F

04/28 16:33, , 19F
DATA TYPE : NVARCHAR
04/28 16:33, 19F

05/03 19:58, , 20F
每個字getByte 長度超過20的那個字另寫
05/03 19:58, 20F

05/06 14:58, , 21F
切開來會怎樣嗎?讀的時候接回去不就好了嗎?
05/06 14:58, 21F
文章代碼(AID): #1O_fJFLT (java)
文章代碼(AID): #1O_fJFLT (java)