无法使用BCP将数据文件导入SQL Server。我怎样才能做到这一点?

时间:2016-10-12 14:55:26

标签: sql-server bcp data-import

我一直在尝试使用BCP将数据文件加载到SQL Server中数小时,但无法使其正常工作。

这是我正在运行的突击队:bcp EDW.stg.STG_ACCOUNT in .\dm_account000 -T -S 111.1.1.111,1111 -t "," -c我得到的就是这个错误:

Starting copy...
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]Invalid character value for cast specification

我已经检查了许多网站上提到的日期转换问题,但我的数据文件中的最后三个字段似乎没有任何问题。这是我的数据文件,在页脚上你可以看到编码等。

enter image description here

这是我的目标表的规格:

CREATE TABLE [stg].[STG_ACCOUNT](
    [CD_ACCOUNT] [varchar](20) NULL,
    [CD_CNPJ] [varchar](30) NULL,
    [NA_ACCOUNT] [varchar](255) NULL,
    [NA_OWNER] [varchar](100) NULL,
    [NA_OWNER_SHARED] [varchar](100) NULL,
    [NA_OWNER_GROWTH_TEAM] [varchar](100) NULL,
    [DS_INDUSTRY] [varchar](50) NULL,
    [DS_ACCOUNT_STATUS] [varchar](30) NULL,
    [NA_ACCOUNT_CITY] [varchar](50) NULL,
    [AB_ACCOUNT_STATE] [char](30) NULL,
    [DS_REGION] [varchar](50) NULL,
    [IN_CLASSIFICATION_PARTNER] [int] NULL,
    [IN_CLASSIFICATION_PARTNER_N] [int] NULL,
    [DS_COMPETITOR_PARTNER] [char](3) NULL,
    [DS_HEADQUARTER_BRANCH] [varchar](30) NULL,
    [DS_CHAIN_FRANCHISE] [varchar](30) NULL,
    [DS_ECONOMIC_GROUP] [varchar](255) NULL,
    [DS_WATCH_LIST] [varchar](50) NULL,
    [IN_STRATEGIC] [int] NULL,
    [DT_CREATED] [date] NULL,
    [DT_LAST_ACTIVITY] [date] NULL,
    [DT_LAST_MODIFIED] [date] NULL,
)

有人可以帮我解决这个问题吗?我真的不知道还能尝试什么。提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试添加-CACP以指定代码页。

来自MSDN ...

  

-C {ACP | OEM | RAW | code_page}指定数据文件中数据的代码页。 code_page仅在数据包含时才相关   字符值大于127的char,varchar或text列   或者少于32. System_CAPS_ICON_note.jpg注意

     

我们建议为格式的每列指定归类名称   文件,除非您希望65001选项优先于   整理/代码页规范。代码页值说明   ACP ANSI / Microsoft Windows(ISO 1252)。 OEM使用的默认代码页   客户端。如果未指定-C,则这是使用的默认代码页。   RAW不会发生从一个代码页到另一个代码页的转换。这是   最快的选择,因为没有转换。 code_page具体代码   页码;例如,850。

     

版本13之前的版本(SQL Server 2016)不支持代码   第65001页(UTF-8编码)。以13开头的版本可以导入   UTF-8编码到早期版本的SQL Server。

相关问题