簡體   English   中英

SQL Server不將數據導入表

[英]SQL Server not importing data to table

我正在使用SQL Server 2008 R2,正在創建下表,然后嘗試通過右鍵單擊數據庫名稱->任務->導入數據來導入數據。 在進行導入設置時,我在列設置中分配了相應的數據類型。 我已經檢查了源文件,看不到任何會導致導入過程中錯誤的內容。 我已將我收到的錯誤包括在表腳本下。

對錯誤有任何想法嗎? 還是為什么我不能從表中導入數據?

謝謝!

CREATE TABLE customer
(
id integer NOT NULL PRIMARY KEY,
username varchar(128) NOT NULL,
email_address varchar(128) NOT NULL,
date_of_birth date NOT NULL,
different_mailing_address bit,
employment_status varchar(255),
first_name varchar(128) NOT NULL,
last_name varchar(128) NOT NULL,
middle_name varchar(128),
gender varchar(255),
months_at_current_address integer,
months_at_current_employment integer,
months_at_previous_address integer,
mothers_maiden_name varchar(255) NOT NULL,
cellular_phone_number varchar(255),
daytime_phone_number varchar(255),
evening_phone_number varchar(255),
home_phone_number varchar(255),
work_phone_number varchar(255),
social_security_number varchar(255) NOT NULL,
special_employer_group varchar(255),
stated_lead_source  varchar(255),
stated_lead_source_desc varchar(255),
us_citizenship_status varchar(255),
us_non_immigrant_classification varchar(255),
us_tax_residency varchar(255),
existing_customer bit,
existing_customer_number varchar(255),
credit_report_fk integer,
current_home_address_fk integer,
expense_fk integer,
family_info_fk integer,
housing_info_fk integer,
id_verification_fk integer,
income_fk integer,
mailing_address_fk integer,
previous_employment_fk integer,
previous_home_address_fk integer,
primary_employment_fk integer,
worksheet_fk integer,
linked_dda_fk integer,
portfolio_id varchar(255),
portfolio_line_number varchar(255),
created datetime,
last_update datetime
)

留言內容

錯誤0xc02020a1:數據流任務1:數據轉換失敗。 列“ Column 0”的數據轉換返回狀態值2和狀態文本“由於潛在的數據丟失,無法轉換該值”。

錯誤0xc0209029:數據流任務1:SSIS錯誤代碼DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “輸出列“列0”(10)”失敗,因為發生了錯誤代碼0xC0209084,並且在“輸出列“列0”(10)”上的錯誤行配置指定發生錯誤。 指定組件的指定對象發生錯誤。 在此之前可能會發布錯誤消息,其中包含有關失敗的更多信息。

錯誤0xc0202092:數據流任務1:處理數據行1上的文件“ Y:\\ ANDERA \\ customer.csv”時發生錯誤。

錯誤0xc0047038:數據流任務1:SSIS錯誤代碼DTS_E_PRIMEOUTPUTFAILED。 組件“源-customer_csv”(1)上的PrimeOutput方法返回了錯誤代碼0xC0202092。 當管道引擎調用PrimeOutput()時,該組件返回失敗代碼。 故障代碼的含義由組件定義,但是錯誤是致命的,並且管道停止執行。 在此之前可能會發布錯誤消息,其中包含有關失敗的更多信息。

為了獲得更有效的幫助,查看csv的某些測試行可能很有用。 我嘗試

我在您的SQL腳本中看到了幾個約束,這些約束可以使用此導入函數(許多特定的dataType)產生錯誤。 因此,您必須仔細檢查自己的csv。 請記住,從csv導入時,在SQL中某些字符串到特定數據類型之間總是存在轉換,因此必須確保該字符串格式正確以便轉換。首先,您必須控制data和datetime字段。 它以SQL可以成功轉換的方式編寫嗎? 然后,有許多NOT NULL字段,它們在CSV中正確填充了嗎? 是CSV實整數上的整數字段(例如1,2而不是1.0等)。

如果您打算一次執行此任務,那么,如果將數據導入到盡可能簡單的表中(更多varchar(255)字段作為可能的表),那之后,您可以在SQL Server中擁有轉換/轉換所有數據的可能性。所需數據類型中的字段,然后使用語句(SELECT INTO),可以將該數據復制到復雜表中。 這樣,您可以更好地測試問題所在。

由於從一種數據類型轉換為另一種數據類型,這聽起來像是在截斷數據。 查看您的CSV數據。 該文本可能比您輸入的文本長,或者其中一個字段中可能有十進制值。 聽起來可能是第二個。

您可以嘗試通過將文件拆分並逐段導入直到找到導致錯誤的行來查找有問題的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM