6

SSIS '08には、OLEDBデータソースを使用したデータフロータスクがあります。クエリは次のとおりです。

SELECT DISTINCT
    dbo.udf_CreateCCISSentenceDuration(probation_year, probation_month, probation_day)
FROM sentence

これを読みやすくするために、クエリを減らしました。関係なく、次のエラーが発生します。

Error at 11012 DATA [Data Records [27]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x80040E14
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E14
Description: "Statement(s) could not be prepared.".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E14
Description: "Cannot find either column "dbo" or the user-defined function or aggreate
"dbo.udf_CreateCCISSentenceDuration", or the name is ambiguous.".

このクエリはSSMSで正常に機能します。「dbo」を削除すると 所有者の部分で、「'udf_CreateCCISSentenceDuration'は認識された組み込み関数名ではありません」というメッセージが表示されます。これを実行しているデータベースはSQL2005インスタンスです。検索を行いましたが、このエラーとUDFに関連するものが見つかりません。どんな助けでも大歓迎です!

4

2 に答える 2

0

これはおそらく実際には SSIS の問題ではありません。問題があるかどうかを判断するには、SSIS の外部でこのエラーを再現して、同じ関数呼び出しでストアド プロシージャを記述してデバッグしてみてください。要するに、oledb 接続の元の要求元であるサーバー/データベース インスタンスにストアド プロシージャを格納する必要があります。

同様のエラーが発生した場合は、サーバー、データベース、所有者、および最後に関数の 4 つの部分を参照して、それが機能するかどうかを確認します (例: [myServerWhereFunctionIs].[myDatabaseInstanceWhereFunctionIs].[ownerSchemaOfFunction].udf_Function)。

于 2013-12-04T16:02:09.780 に答える
-2

私にとって、クエリはそのエラーの問題です。クエリを変更すると、正常に動作します。そのため、エラー メッセージの説明に基づいてクエリを実行してください。

于 2015-01-08T06:58:36.650 に答える