首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >` `ERROR:运行`\copy` `时,类型字符(2)`的值太长

` `ERROR:运行`\copy` `时,类型字符(2)`的值太长
EN

Stack Overflow用户
提问于 2017-09-03 14:22:58
回答 1查看 785关注 0票数 0

我摆了一张这样的桌子。

代码语言:javascript
运行
复制
CREATE TABLE IF NOT EXISTS details (
    CountyCode                  CHAR(3)     NOT NULL,
    VoterID                     CHAR(10)    NOT NULL UNIQUE,
    NameLast                    TEXT,
    NameSuffix                  TEXT,
    NameFirst                   TEXT,
    NameMiddle                  TEXT,
    PublicRecordExemption       CHAR(1),
    ResidenceAddressLine1       TEXT,
    ResidenceAddressLine2       TEXT,
    ResidenceCity               TEXT,
    ResidenceState              TEXT,
    ResidenceZipcode            TEXT,
    MailingAddressLine1         TEXT,
    MailingAddressLine2         TEXT,
    MailingAddressLine3         TEXT,
    MailingCity                 TEXT,
    MailingState                CHAR(2),
    MailingZipcode              TEXT,
    MailingCountry              TEXT,
    Gender                      CHAR(1),
    Race                        CHAR(1),
    BirthDate                   CHAR(10),
    RegistrationDate            CHAR(10),
    PartyAffiliation            CHAR(3),
    Precinct                    CHAR(6),
    PrecinctGroup               CHAR(3),
    PrecinctSplit               CHAR(6),
    PrecinctSuffix              CHAR(3),
    VoterStatus                 CHAR(3),
    CongressionalDistrict       CHAR(3),
    HouseDistrict               CHAR(3),
    SenateDistrict              CHAR(3),
    CountyCommissionDistrict    CHAR(3),
    SchoolBoardDistrict         CHAR(2),
    DaytimeAreaCode             CHAR(3),
    DaytimePhoneNumber          CHAR(7),
    DaytimePhoneExtension       CHAR(4),
    Emailaddress                TEXT
);

我运行此命令从制表符分隔的文件Detail.txt导入数据。

\copy details FROM Detail.txt;

几秒钟后,命令行控制台将显示此错误。

ERROR: value too long for type character(2) CONTEXT: COPY details, line 449121, column mailingstate: "273707216"

Here's line 449121 copied into a pastebin

该错误指示PSQL试图将值273707216读入mailingstate列,该列的长度为两个字符。我认为PSQL会将NC读入该列。

为什么PSQL会读错这一行?

EN

回答 1

Stack Overflow用户

发布于 2017-09-04 11:15:18

我认为问题出在该行的这些字段中。

代码语言:javascript
运行
复制
Hand Dr      \  Melbourne

该数据中的反斜杠后面紧跟一个制表符。对于复制函数来说,它看起来像一个\t,双反斜杠可能被视为转义字符,而不是字段分隔符,因此它将“吃掉”一列,从而将mailingZipcode放入mailingState列。

尝试删除该反斜杠,然后尝试重新导入该行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46020850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档