
[英]Using SQL Server bcp to migrate data from datetime to datetimeoffset
[英]using bcp to load data errors on datetime
我正在运行这个 bcp 命令:
/opt/mssql-tools/bin/bcp buyerhero_staging.dbo.mytable IN "/home/airflow/airflow/staging/site/Leads.txt" -F2 -U<<username>> -P<<password>> -S<<Server>> -t"|" -c -r"0x0A" -e error.txt
此数据的最后一列是相同的日期时间值。
示例数据:
870950956|165452666|2020-05-07|Internet|ST|LOCATION|Description||9152768067|(Do Not Call Registry)|Robert Garcia||||||||||||1000|3|1|0.14|1959|Carport, 1 space|84800|915|276|||||||Address||Town|ST|79924|2020-05-15 15:11:16
870951459||2020-05-07|Internet|ST|LOCATION|Description||2672418667|(Do Not Call Registry)||||||||||||||||0.55|||6500|267|241|||||||Address||town|ST|32428|2020-05-15 15:11:16
870951519|169648811|2020-05-07|Internet|ST|LOCATION|Description||3153910470||||||||||||||1973|3|2|0.42|1962|Attached Garage, 2 spaces|195000|315|391|||||||Address||TOwn|ST|13212|2020-05-15 15:11:16
最后一列是日期时间YYYY-MM-DD HH:MM:SS
并且它是相同的值。
但是我收到有关日期格式的随机错误:
1000 rows sent to SQL Server. Total sent: 1000
1000 rows sent to SQL Server. Total sent: 2000
1000 rows sent to SQL Server. Total sent: 3000
SQLState = 22008, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid date format
1000 rows sent to SQL Server. Total sent: 4000
1000 rows sent to SQL Server. Total sent: 5000
1000 rows sent to SQL Server. Total sent: 6000
SQLState = 22008, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid date format
1000 rows sent to SQL Server. Total sent: 7000
1000 rows sent to SQL Server. Total sent: 8000
1000 rows sent to SQL Server. Total sent: 9000
1000 rows sent to SQL Server. Total sent: 10000
1000 rows sent to SQL Server. Total sent: 11000
SQLState = 22008, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid date format
如何解决数据格式问题? 如果我将列修改为 varchar,它工作正常,但我需要 datetime。
谢谢
有人告诉我使用格式文件。 这是格式:
14.0
43
1 SQLCHAR 2 500 "|" 1 Lead_ID SQL_Latin1_General_CP1_CI_AS
2 SQLBIGINT 1 8 "|" 2 Attom_ID ""
3 SQLCHAR 2 500 "|" 3 Date SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 2 500 "|" 4 Data_Source SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 2 500 "|" 5 Area_ST SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 2 500 "|" 6 Area_Name SQL_Latin1_General_CP1_CI_AS
7 SQLCHAR 8 0 "|" 7 Description_Ad SQL_Latin1_General_CP1_CI_AS
8 SQLCHAR 2 5000 "|" 8 Contact_Email SQL_Latin1_General_CP1_CI_AS
9 SQLCHAR 2 5000 "|" 9 Contact_Phone1 SQL_Latin1_General_CP1_CI_AS
10 SQLCHAR 2 5000 "|" 10 Phone1_DNC SQL_Latin1_General_CP1_CI_AS
11 SQLCHAR 2 500 "|" 11 Contact_Name1 SQL_Latin1_General_CP1_CI_AS
12 SQLCHAR 2 5000 "|" 12 Contact_Street1 SQL_Latin1_General_CP1_CI_AS
13 SQLCHAR 2 500 "|" 13 Contact_City1 SQL_Latin1_General_CP1_CI_AS
14 SQLCHAR 2 5000 "|" 14 Contact_ST1 SQL_Latin1_General_CP1_CI_AS
15 SQLCHAR 2 500 "|" 15 Contact_ZIP1 SQL_Latin1_General_CP1_CI_AS
16 SQLCHAR 2 500 "|" 16 Contact_Phone2 SQL_Latin1_General_CP1_CI_AS
17 SQLCHAR 2 500 "|" 17 Phone2_DNC SQL_Latin1_General_CP1_CI_AS
18 SQLCHAR 2 500 "|" 18 Contact_Name2 SQL_Latin1_General_CP1_CI_AS
19 SQLCHAR 2 500 "|" 19 Contact_Street2 SQL_Latin1_General_CP1_CI_AS
20 SQLCHAR 2 500 "|" 20 Contact_City2 SQL_Latin1_General_CP1_CI_AS
21 SQLCHAR 2 500 "|" 21 Contact_ST2 SQL_Latin1_General_CP1_CI_AS
22 SQLCHAR 2 500 "|" 22 Contact_ZIP2 SQL_Latin1_General_CP1_CI_AS
23 SQLCHAR 2 500 "|" 23 Square_Feet SQL_Latin1_General_CP1_CI_AS
24 SQLCHAR 2 500 "|" 24 Bedrooms SQL_Latin1_General_CP1_CI_AS
25 SQLCHAR 2 500 "|" 25 Bathrooms SQL_Latin1_General_CP1_CI_AS
26 SQLCHAR 2 500 "|" 26 Lot_Size SQL_Latin1_General_CP1_CI_AS
27 SQLCHAR 2 500 "|" 27 Year_Built SQL_Latin1_General_CP1_CI_AS
28 SQLCHAR 2 500 "|" 28 Garage SQL_Latin1_General_CP1_CI_AS
29 SQLCHAR 2 500 "|" 29 Price SQL_Latin1_General_CP1_CI_AS
30 SQLCHAR 2 500 "|" 30 Phone1_PF_AreaCode SQL_Latin1_General_CP1_CI_AS
31 SQLCHAR 2 500 "|" 31 Phone1_PF_Prefix SQL_Latin1_General_CP1_CI_AS
32 SQLCHAR 2 500 "|" 32 Phone1_PF_City SQL_Latin1_General_CP1_CI_AS
33 SQLCHAR 2 500 "|" 33 Phone1_PF_ST SQL_Latin1_General_CP1_CI_AS
34 SQLCHAR 2 500 "|" 34 Phone2_PF_AreaCode SQL_Latin1_General_CP1_CI_AS
35 SQLCHAR 2 500 "|" 35 Phone2_PF_Prefix SQL_Latin1_General_CP1_CI_AS
36 SQLCHAR 2 500 "|" 36 Phone2_PF_City SQL_Latin1_General_CP1_CI_AS
37 SQLCHAR 2 500 "|" 37 Phone2_PF_ST SQL_Latin1_General_CP1_CI_AS
38 SQLCHAR 2 500 "|" 38 Property_Street SQL_Latin1_General_CP1_CI_AS
39 SQLCHAR 2 500 "|" 39 Property_Street_2 SQL_Latin1_General_CP1_CI_AS
40 SQLCHAR 2 500 "|" 40 Property_City SQL_Latin1_General_CP1_CI_AS
41 SQLCHAR 2 500 "|" 41 Property_ST SQL_Latin1_General_CP1_CI_AS
42 SQLCHAR 2 500 "|" 42 Property_ZIP SQL_Latin1_General_CP1_CI_AS
43 SQLDATETIME 1 8 "0x0a" 43 LOADDATE ""
第 43 列是我遇到问题的列。 该文件是 unix 内衬 utf-8。我得到的响应是:
Error = [Microsoft][ODBC Driver 17 for SQL Server]Unexpected EOF encountered in BCP data-file
我该如何解决? 谢谢
您的格式文件看起来不太正确。 您应该能够使用 BCP 本身生成它,例如:
bcp buyerhero_staging.dbo.mytable format nul -S <Server> -U <Username> -P <Password> -c -f mytable.fmt -t"|" -r"\n"
BCP 通常会忽略-r
开关(记录分隔符)并在格式文件中写入"\r\n"
,所以您需要检查它并在这样做时将其替换为"\n"
。 然后您应该能够导入您的 Leads.txt 文件:
bcp buyerhero_staging.dbo.mytable IN Leads.txt -f MyTable.fmt -S <Server> -U <Username> -P <Password> -e error.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.