TECHNOLOGY

FAQ (よくある質問)

対象バージョン : 全て
対象OS : 全て

QUESTION ( SQ1005095 )

半角カナを含んでいるデータのINSERTが失敗します。

『半角カナ』のデータをINSERT(またはUPDATE)しようとすると、同じ文字数の『英数字』ではエラーが発生しないのに、 SQLCODE:-638 「文字列データの右側がトランケートされます。」(カラムに対する文字列が長すぎる)というエラーが発生して失敗します。

例:CHAR(10)のカラムに、次のデータをINSERTすると、(1)は成功するが、(2)はエラーで失敗します。
(1)ABCDEFGHIJ
(2)アイウエオカキクケコ

ANSWER

データベースの照合順にUTF8(またはUTF8BIN)を使用されている場合、正常な結果です。
UTF8では半角カナ1文字を3バイトで表現する為、10文字(SJISでは10バイト)の半角カナのデータを保存するには、CHAR(30)のカラムが必要となります。