我正在运行此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 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