dポイントプレゼントキャンペーン実施中!

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column '******' at row 1
とエラーがでて解決できません。どこがおかしいのでしょうか?(JAVA初心者ですいません。)

A 回答 (5件)

私の場合ですが、データベース接続直後に


"SET NAMES SJIS;"
を実行すれば正常にINSERT出来ました。

なお、テーブルの作成時に文字コードをSJISにしておく必要があります。私は(cp932 -- SJIS for Windows Japanese)にしました。
後からテーブルの文字コードを修正してもうまくいきませんでした。
    • good
    • 2

ANO.3の方の補足として、ANO.3の回答は文字データがSJISであることを


前提として話されていると思います。
ANO.3の条件を満たしているのにまだ同じエラーが発生する場合、
データの登録処理を行なうときの文字コード、テーブルの文字コードの設定を
確認してみて下さい。

参考URLはMySQLの文字コード設定について書かれたページです。

参考URL:http://www.javadrive.jp/mysql/control/index1.html
    • good
    • 1

全角2バイト文字は、varcharで指定する桁数の2倍のサイズが必要ではないですか?



例えばvarchar(4)に”あいうえ”は入りません。
varchar(8)が必要です。

という事ではないですか?
    • good
    • 0

まずは質問の仕方がおかしいかと思います。


MySQLのバージョンも書かない、環境も書かない、
どんなデータを入れようとしたのか、カラムの定義はなんなのか。
そもそも、どんな処理を行なおうとしたのかも分かりません。
あまりに情報不足です。
これではANO.1のように考えない人の方が僕は不思議に思います。

思いつく限りを全部あげていきます。思い当たる物があると良いのですが…

○全角と半角の間違い
○SQLの環境とデータを投入する処理の文字コードが異なる
○区切りに設定している改行コードが\rなのに対し、データが\r\nの改行区切りである

うーん、あまり思いつかないですね…

この回答への補足

環境はwindowsxp
エディターはeclipse3.1
mysqlは5.0.16です。
処理は、テーブルにデータを登録しようとしているところです。
エラーの部分はvarcharで定義していて、日本語を入れています。半角英数字のデータは登録できました。
よろしくお願いします。

補足日時:2006/03/21 09:45
    • good
    • 0

Data too long ですから、MySQLのInsertしようとしているテーブルのカラム定義より長い桁の値をセットしてしまっているのではないですか?



例えばchar(1)のカラムに2桁の文字をInsertしようとしている、とかです。

この回答への補足

テーブルのカラム定義より長い桁の値をセットしてしまっていることは、ありません。
ちゃんとそれは、しています。

補足日時:2006/03/20 23:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A