【发布时间】:2015-01-21 14:27:43
【问题描述】:
我无法从 OLEDB 命令调用存储过程。预览出错:
[OLE DB 命令 [420]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。一个 发生 OLE DB 错误。错误代码:0x80004005。 OLE DB 记录是 可用的。来源:“Microsoft SQL Server Native Client 10.0” Hresult:0x80004005 描述:“语法错误,权限违规, 或其他非特定错误”。
这个 sql 命令有效:
exec [dbo].[Update_PRODBOM_93Days] '1',5,'se1'.
但不是这个:
exec [dbo].[Update_PRODBOM_93Days] ?,?,?
我的连接字符串是:
Data Source=tcp:sld51cxbyz.database.windows.net,1433;User ID=bleetmaa@sld51cxbyz;Initial Catalog=MigrationFromAx;Provider=SQLNCLI10.1;Persist Security Info=True;Packet Size=0;Application Name=SSIS-DaxPRODtoOEMDW-{2DA081B5-9B6B-403F-B354-F759BEAD952D}DestinationConnectionOLEDB;database=MigrationFromAX;encrypt=True;trustservercertificate=False;connection timeout=30;
如果我将其更改为:
Data Source=sld51cxbyz.database.windows.net;User ID=bleetmaa@sld51cxbyz;Initial Catalog=MigrationFromAX;Provider=SQLNCLI11.1;Auto Translate=False;
它有效。
SQLCLI10 不支持 oledb 命令吗?
我的数据库是 Azure 数据库。
我的存储过程是:
CREATE PROCEDURE [dbo].[Update_PRODBOM_93Days]
@PRODID nvarchar(20)
,@PRODSTATUS int
,@DATAAREAID nvarchar(4)
AS
BEGIN
update dbo.PRODBOM_93Days
SET prodstatus = @PRODSTATUS
where PRODID = @PRODID and DATAAREAID=@DATAAREAID
END
【问题讨论】:
-
当您运行不起作用的 SQLCommand 时,使用分析器查看 SSIS 发送的 SQL。
标签: azure ssis parameter-passing oledbcommand