問題タブ [ssis-2014]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssis - SSIS2014 同じ DataFlowTask で Destination コンポーネントのステータスを取得する方法
私はSSIS 2014を使用しています。Attunity Oracle ソース コンポーネントから数十万の行があり、そのソース クエリには 20 の列があり、時間がかかります。何らかの理由で、最初のテーブルを参照する別のテーブルに同じクエリの 2 つの列を挿入する必要があります。
別の DataFlowTask でクエリの 2 回目の呼び出しを避けたいので、 OleDB Destination が終了WAIT till x_01 finishes
したときに検証するスクリプト コンポーネント タスクを作成して、2 番目のテーブルに挿入することを考えていました。x_01
私がここで達成したいことを親切に理解してください:
x_01_Finished
Package Scope 変数を使用し、PostExecute イベントが から発生したときにその値を変更することを考えていましx_01
たが、残念ながら PostExecute は OleDB x_01
Destination レベルでは使用できません。
質問1:
スクリプト コンポーネント コード内で、他のコンポーネントのステータスを取得する方法はありますか?
次のようなもの:
質問2:
この手法を使用すると、パッケージのパフォーマンスが大きく影響を受けると思いますか?
更新 1
すでにNick.McDermaidの提案を非常に少量のデータで試しました。最初の列に PK を持つ 2 つの一時テーブルと、最初のテーブルのこの PK への FK を持つ 2 番目のテーブルを作成しました。この少量のデータでも、このエラーが発生The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tmp_1_tmp_2".
しました。次のスクリーンショットで、挿入が実際に非常に高速であることがわかります。データの 2 番目のチャンクではx_02
、最初のデータの前にオブジェクトを挿入することを意図していました (そして、それは不可能でした) 。この FK により) .
したがって、私の次のアイデアは、2 番目のテーブルに挿入する前に最初の行だけを読み込んでいる間、数ミリ秒スリープすることです。これが役立つかどうかを確認します。
sql-server - SSIS 式で数値を wstr にキャストした後の不正な形式
メッセージを作成するために、派生列の式で double を wstr にキャストする必要があります。番号でそれを行うと0.5
: (DT_WSTR, 50)0.5
。それから、私は悪いフォーマットを得ました: ,5
. が欠落しており、0
小数点記号が変更されています。
0.5
キャスト時にフォーマットで数値を取得するにはどうすればよいですか?
ご協力ありがとうございました。
sql-server - SSIS Foreach は、名前に「crosswlk」が含まれるテキスト ファイルをループします。
私の Foreach ループでは、ファイル名にcrosswlkを含むファイルのみを処理したいと考えています。残念ながら、これはファイル名の途中にあり、 crosswlk.pgpを実行できません。
私はこれをたくさんグーグルで検索しましたが、ほとんどのソリューションは、これを達成するためにスクリプト タスクで C# を実行すると言っています。Foreach コンテナーでこれを行うことができるように思われます。おそらく、コレクション領域で Expressions を使用します。しかし、プロパティ式エディタでさまざまなプロパティに関する情報を見つけるのに苦労しています。FileSpec
名前とFileNameRetrieval
プロパティの違いは何ですか?
私は次のようなことができると思いました:
私には、ファイル名にcrosswlkが含まれているファイルのみを処理すると言っています。しかし、それはうまくいきません。crosswlkという単語は常にファイル名の 13 番目の文字から始まることに気付いたので、部分文字列を使用してみましたが、運もありませんでした。
この(または別の)方法でファイル名をフィルタリングする方法はありますか、それともC#を使用する唯一の方法ですか?どうもありがとう!