0

JDBC ドライバーを使用して mysql データベースに接続し、Java アプリケーションで「LOAD DATA INFILE」コマンドを使用してテキスト ファイルをデータベースにロード (挿入) しています。次のエラーが表示されます: Data truncation: Data too long for column xxx at row 1 .

ただし、データベースにログインして SQL を手動で入力して同じテキスト ファイルを手動でロードすると、データは正常にロードされます。

誰かがエラーの原因を教えてもらえますか?

これを Red Hat Enterprise Linux Server リリース 5.8 で実行しています。jdk のバージョンは 1.5.0_16 です。

これは、データをロードするために使用される関数です

    public static void loaddata(Connection conn, String filename, String tablename)
{
    try{
    Statement stmt = null;
    stmt = conn.createStatement();
    File file = new File(filename);
    file.getAbsolutePath().replace("\\", "\\\\");
    String cmd = "LOAD DATA INFILE '"
            + file.getAbsolutePath().replace("\\", "\\\\")
            + "' INTO TABLE " + tablename + " FIELDS TERMINATED BY \'^\'";
    stmt.executeUpdate(cmd);
    System.out.println("cmd     :" + cmd);
    }
    catch(SQLException sqle){
        sqle.printStackTrace();
    }
}

これは、JDBC 接続を作成する関数です。

    public static Connection createConnection()
{
    Connection conn=null;

    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
    }       
    catch(Exception e) {
        e.printStackTrace();
    }
    try {
        String url = ""; //URL mentioned in the actual code
        conn = DriverManager.getConnection(url, user, pass);
    } catch (SQLException sqe1) {
        sqe1.printStackTrace();
    }
    return conn;
}
4

0 に答える 0