2017-10-13 199 views
0

SSISを初めて使用しているため、一部のオンラインチュートリアルに従っています。私は次のことに出くわして何が起こったのか理解できません。 OLE DB接続でエラーが発生する実行時にOLE DBの宛先でSSISエラーが発生する

誰かが正しい方向にこの解決方法を教えてくれれば幸いです。

SSIS package "c:\users\****\documents\visual studio 2015\Projects\tutorials\tutorials\basicpackage.dtsx" starting. 
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning. 
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning. 
Warning: 0x80049304 at Data Flow Task, SSIS.Pipeline: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console. 
Information: 0x40043006 at Data Flow Task, SSIS.Pipeline: Prepare for Execute phase is beginning. 
Information: 0x40043007 at Data Flow Task, SSIS.Pipeline: Pre-Execute phase is beginning. 
Information: 0x402090DC at Data Flow Task, Flat File Source [2]: The processing of file "L:\sql queries\SSIS TUTORIAL\apps.txt" has started. 
Information: 0x4004300C at Data Flow Task, SSIS.Pipeline: Execute phase is beginning. 
Information: 0x402090DE at Data Flow Task, Flat File Source [2]: The total number of data rows processed for file "L:\sql queries\SSIS TUTORIAL\apps.txt" is 5. 
Error: 0xC0202009 at Data Flow Task, OLE DB Destination [23]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. 
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.". 
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Cannot insert the value NULL into column 'ID', table 'ssis.dbo.Apps'; column does not allow nulls. INSERT fails.". 
Error: 0xC0209029 at Data Flow Task, OLE DB Destination [23]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "OLE DB Destination.Inputs[OLE DB Destination Input]" failed because error code 0xC020907B occurred, and the error row disposition on "OLE DB Destination.Inputs[OLE DB Destination Input]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure. 
Error: 0xC0047022 at Data Flow Task, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Destination" (23) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (36). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. 
Information: 0x40043008 at Data Flow Task, SSIS.Pipeline: Post Execute phase is beginning. 
Information: 0x402090DD at Data Flow Task, Flat File Source [2]: The processing of file "L:\sql queries\SSIS TUTORIAL\apps.txt" has ended. 
Information: 0x4004300B at Data Flow Task, SSIS.Pipeline: "OLE DB Destination" wrote 4 rows. 
Information: 0x40043009 at Data Flow Task, SSIS.Pipeline: Cleanup phase is beginning. 
Task failed: Data Flow Task 
Warning: 0x80019002 at basicpackage: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (3) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors. 
SSIS package "c:\users\****\documents\visual studio 2015\Projects\tutorials\tutorials\basicpackage.dtsx" finished: Failure. 

最初のエラーiiは解決できません。私は、SQL DB内の接続、接続先テーブルを確認して、問題が何かを知らない。 dbにアクセスするためのWindows認証と関係がありますか?

Error: 0xC0202009 at Data Flow Task, OLE DB Destination [23]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. 
+0

'apps.txt'ファイルの内容と' dbo.Apps'テーブルの定義を含める –

+0

'' NULL値を 'ID'列に挿入できません。 ID列のNOT NULL制限(推奨されません)を削除するか、ソースのNULLをチェックしてください。 –

+0

@ Prabhat-G私は、接続マネージャのマッピングセクションのDB列「ID」に何もリンクしていないと問題はないと考えました。 'ID'列は自動的に増分されますか? – sql2015

答えて

1

このエラーは、OLE DBレコードが利用可能な出力で、この行で説明されるように

を探します。ソース: "Microsoft SQL Serverネイティブ クライアント11.0" Hresult:0x80004005説明 "NULL値 の値を列 'ID'、表 'ssis.dbo.Apps'に挿入できません;列は がNULLを許可しません。テーブルにはNULLを受け入れないIDという列を持っていることを言うことよりも、ファイルL:\sql queries\SSIS TUTORIAL\apps.txt の内容と、それが困難な他の問題の正確な面積を指すピンするSSIS.dbo.Appsテーブルの設計を知らず

ファイルには対応する列の内容がNULLの行があります。

あなたはそう

CREATE TABLE dbo.Apps (
     Id UNIQUEIDENTIFIER PRIMARY KEY 
    , Apps CHAR (1) 
    , Rating CHAR (1) 
    , Summary CHAR (1) 
); 

のようなテーブルを持っているとID列にこのような何か、何を挿入しようとしているように見える[EDIT} OPのコメント

次 更新

INSERT INTO dbo.Apps 
(Id, Apps, Rating, Summary) 
VALUES 
(NULL , '1', '2', '3') 

このエラーが発生します

メッセージレベル51、レベル16、状態2、行5 列 'Id'、テーブル 'xStuff.dbo.Apps'にNULLを挿入できません。列はNULLを許可しません。 INSERTが失敗します。あなたはINT IDENTITY

CREATE TABLE dbo.Apps (
     Id INT IDENTITY PRIMARY KEY 
    , Apps CHAR (1) 
    , Rating CHAR (1) 
    , Summary CHAR (1) 
); 

に自動インクリメントするID列、UNIQUEIDENTIFIERをしたいと

は、だから私は、あなたがそうのようなテーブル定義を変更推薦すると、この本は動作します

INSERT INTO dbo.Apps 
( Apps 
    , Rating 
    , Summary 
) 
VALUES 
( '1', '2', '3'), ( 'A', 'B', 'C') 

出力を参照してください

enter image description here

+0

ご返信ありがとうございます。私のapps.txtファイルには3つのヘッダーが含まれていますApp | Rating | Summary。私のSQL dbテーブルのAPPは4列のID | App | Rating | Summaryを含んでいます。 IDはPKとして設定され、データ型はuniqueIdentifierに設定され、ヌルを許可しません。私はこれが問題になるとは思わなかった。これは、パッケージが実行されたときにこれが設定されると思ったのだろうか? – sql2015

+0

uniqueidentifierは自動インクリメントではなく、デフォルトの制約を作成しない限りデフォルト値を持ちません –

関連する問題