【问题标题】:Teradata create table auto-increment column errorTeradata 创建表自增列错误
【发布时间】:2016-08-03 19:42:40
【问题描述】:

我正在尝试使用 Teradata 的 Fastload 脚本将我的 CSV 文件导入 Teradata。 我还尝试添加一个自动增量列。 这是我的 CSV 文件:

Word,country,sale,week
hi,USA,26.17,11/22/15-11/28/15
bye,USA,16.5,11/22/15-11/28/15

代码sn-p

String tableName = "my_db.mytable";
    String createTable = "CREATE TABLE " + tableName + "," +
                            "NO FALLBACK," +
                            "NO BEFORE JOURNAL," +
                            "NO AFTER JOURNAL," +
                            "CHECKSUM = DEFAULT" +
                            "(" +
                            " id decimal(10,0) NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE),"+
                            " word VARCHAR(500) CHARACTER SET UNICODE," +
                            " country VARCHAR(50)," +
                            " sale FLOAT," +
                            " week VARCHAR(30)" +
                            ") " +
                          "PRIMARY INDEX (id)";

    // INSERT statement
    String insertTable = "INSERT INTO " + tableName + " VALUES(?,?,?,?,?)";

我得到的错误:

Row 1 in FastLoad table my_db.mytable_ERR_1 contains the following data: 
ErrorCode=2673
ErrorFieldName=F_id
ActualDataParcelLength=55
DataParcel: byte array length 55 (0x37), offset 0 (0x0), dump length 55 (0x37)

【问题讨论】:

    标签: mysql database csv teradata


    【解决方案1】:

    这看起来不像是 FastLoad 脚本,这是 JDBC-FastLoad 的一部分吗?

    2673 源地块长度与定义的数据不匹配。

    您的输入数据是逗号分隔的文本,因此您必须将所有列定义为 VARCHAR。

    您的输入文件中有 列,但您在 INSERT 中指定了 。顾名思义,会自动创建一个GENERATED ALWAYS 序列。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 2015-10-07
      • 2014-09-26
      • 2020-12-21
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 2015-05-14
      • 2019-03-13
      相关资源
      最近更新 更多