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' 不是可识别的内置函数名称。”。我运行它的数据库是一个 SQL 2005 实例。我已经进行了搜索,但找不到与此错误和 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 回答