作者:
XDXQQ (傑洛尼莫)
2017-04-25 08:14:04大家好
可能是我表達的不好,非常抱歉
我是想將字串傳入資料庫
可是這個欄位只接受20byte
但是字串有中文英文
有可能會發生當第19byte是英文
第20byte是中文,這時中文就會被切開造成錯誤
所以想請問大家有沒有辦法判斷這種情形時,就將第20byte的中文自動存入下一筆資料中
感謝大家的回答
作者:
ssccg (23)
2017-04-25 09:33:00為什麼要把資料庫欄位開不夠大? 沒辦法想像資料太長時是切到下一個row的use case,另外資料庫的編碼跟Java又是另一回事了,如果是UTF-8中文是3 byte
作者:
XDXQQ (傑洛尼莫)
2017-04-25 10:03:00因為無法開大,所以才會想在java層解決@@
作者:
swpoker (swpoker)
2017-04-25 10:47:00oracle db有分位元跟字元兩種,不知道你是用哪種?
作者:
XDXQQ (傑洛尼莫)
2017-04-25 10:48:00我是用mssql,不過基本上sql那塊是無法修改的
作者:
ssccg (23)
2017-04-25 11:27:00切成很多row也不能說是在java層解決吧,在資料庫中原本屬於同一筆資料的就直接拆成多個row了,你其他欄位是打算怎麼處理? key可以用重複的嗎? 還是同一筆變成多個不同key的row?個人看法是: 資料庫絕對不能動的話,就是說原結構定義是絕對的,那欄位不可能出現超過長度的字串,你的資料根本不該存到該table...
作者:
XDXQQ (傑洛尼莫)
2017-04-25 12:10:00其他欄位是造原本的就好沒有pk問題
作者:
ssccg (23)
2017-04-25 13:51:00反正你要這樣做就做吧,記得要用資料庫的編碼來算長度就是
作者:
XDXQQ (傑洛尼莫)
2017-04-25 18:22:00感謝回答~
作者:
Jichang (C.C.Lemon)
2017-04-27 10:01:00不用那麼麻煩 在開一個表格 原本那格改填FK
作者:
pttnews (PTT新聞)
2017-04-28 16:33:00DATA TYPE : NVARCHAR
作者:
jej (晃奶大馬桶)
2017-05-03 19:58:00每個字getByte 長度超過20的那個字另寫
作者:
eieio (好多目標)
2017-05-06 14:58:00切開來會怎樣嗎?讀的時候接回去不就好了嗎?