3
4

9 に答える 9

3

You could try using "OLE DB Command" in Data Flow. This made a difference for me. I am using VS 2013 and using the same procedure with "OLE DB Destination" is not working, but with "OLE DB Command" is fine. I noticed some obstacles with "OLE DB Command" also, especially with Stored Procedures what are not correct, but that is a plus for SSIS.

Data flow tasks are very strict with retrieving columns/parameters on which it can do the SQL, especially for OLE DB Destination(now I notice it is for Source also). most often with this error. It is recommended by Microsoft(OLE DB Destination recommendations) to use OLE DB command instead of destination. I would also recommend using stage temporary tables when possible. Even with the OLE DB Command, I found a need to refresh it a couple of times so the input/destination columns/procedure parameters came in available for mapping.

Here is the note(not sure if it is applicable for source, but could be):

Note

The OLE DB destination does not support parameters. If you need to execute a parametrized INSERT statement, consider the OLE DB Command transformation. For more information, see OLE DB Command Transformation.

于 2015-06-15T15:23:33.980 に答える
2

SQL DB Prosに答えがあります。SET FMTONLY OFF ソリューションは私にとってはうまくいきました.SPには動的SQLがあったので、パフォーマンスは実際には問題ではありませんでした.

于 2015-04-09T20:55:22.943 に答える
1

解決策ではなく、単なる回避策です。

SP からのデータを中間一時テーブルにダンプします。このテーブルは で作成できますExecute SQL Task

CREATE TABLE #Temp
(
.....
.....
)
insert into #Temp
exec [dbo].[bi_resource_dimension_sp] 1,1

Delay ValidationプロパティをTrue に設定し、OLEDB 接続へのプロパティをTrueに設定します。ここで、DFT で、SP の代わりに#tempテーブルからデータを取得します。テーブル内のすべての列にエイリアスがあるため、この問題に直面することはもうありません。RetainSameConnection

于 2015-04-10T15:28:33.557 に答える
1

ストアド プロシージャにエイリアスが必要な列があると思います。SQL にCOUNT( ) や SUM( ) のようなエイリアスがありませんか? SSMS でストアド プロシージャを実行すると、"(列名なし)" がどこかに返されますか?

于 2013-06-26T12:59:04.240 に答える
1

SP データベースと接続データベースが異なるため、このエラーも発生しました。両方を同じようにすると修正されました。

于 2021-08-09T09:07:13.790 に答える