gpt4 book ai didi

sql-server-2005 - 从 SQL 2005 链接服务器执行 DB2 iSeries 存储过程

转载 作者:行者123 更新时间:2023-12-04 07:11:04 25 4
gpt4 key购买 nike

我正在尝试从 MS SQL 2005 中的链接数据库执行存储过程。链接数据库是 iseries 服务器上的 db2 数据库。我正在使用 iSeries IBMDASQL 服务提供者。我可以使用简单的 vbscript 和 ado 查询存储过程而不会出现问题。当我尝试在 SQL Server 上的查询分析器中执行相同的存储过程时,我从未看到任何结果。查询分析器始终显示“已执行命令”,当我在临时表上执行 select * 时,不会出现任何值。我究竟做错了什么?????
谢谢!

--下面查询分析器的代码--

DECLARE @emailToAddress         char(50)
DECLARE @emailFromAddress char(50)

set @emailToAddress = 'customer.service@company.com'
set @emailFromAddress = 'customer@gmail.com'

If Object_ID('tempdb..#tmpResultTbl') Is Not Null
Drop Table #tmpResultTbl

Create Table #tmpResultTbl
(
OUTPGMID Char(150))

--SET FMTONLY Off
Set NoCount On
Insert Into #tmpResultTbl
EXEC ('CALL abicqual.VP_GETCCEPGMID(?, ?) ', @emailToAddress, @emailFromAddress) AT MAM400

Select * From #tmpResultTbl

更新:
这是使用 openquery 的更新代码......仍然没有运气:(

声明 @TSQL varchar(8000)
声明 @emailToAddress varchar(50)
声明@emailFromAddress varchar(50)
SET @emailToAddress = 'customer.service@company.com'
SET @emailFromAddress = 'customer@gmail.com'
SET @TSQL = 'SELECT * FROM OPENQUERY(MAM400,''CALL abicqual.VP_GETCCEPGMID(''''' + @emailToAddress + ''''', ''''' + @emailFromAddress + '''''' + ')''' + ')'
打印@TSQL
执行(@TSQL)

--输出如下--
SELECT * FROM OPENQUERY(MAM400,'CALL abicqual.VP_GETCCEPGMID(''customer.service@company.com'', ''customer@gmail.com'')')
消息 7357,级别 16,状态 2,第 1 行
无法处理对象“CALL abicqual.VP_GETCCEPGMID('customer.service@company.com', 'customer@gmail.com')”。链接服务器“MAM400”的 OLE DB 提供程序“IBMDASQL”表明该对象没有列或当前用户对该对象没有权限。

最佳答案

事实证明,我使用的 IBMDASQL 提供程序存在许多问题。信不信由你,使用 Microsoft OLE DB Provider for ODBC Drivers 更快、更可靠。使用此提供程序创建新的链接服务器后,我之前的所有 sql 尝试都正常工作。
干杯!

关于sql-server-2005 - 从 SQL 2005 链接服务器执行 DB2 iSeries 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/329051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com