Я пытаюсь выполнить хранимую процедуру из связанной базы данных в MS SQL 2005. Связанная база данных - это база данных db2 на сервере iseries. Я пользуюсь сервис-провайдером iSeries IBMDASQL. Я могу запросить хранимую процедуру без проблем, используя простой VBScript и ADO. Когда я пытаюсь выполнить ту же хранимую процедуру в анализаторе запросов на SQL Server, я никогда не вижу результатов. Анализатор запросов всегда показывает «команда выполнена», и когда я выполняю команду select * в таблице temp, значения не отображаются. Что я делаю неправильно?????
Спасибо!
- код из анализатора запросов ниже -
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
EXEC (@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 ')". Поставщик OLE DB «IBMDASQL» для связанного сервера «MAM400» указывает, что либо у объекта нет столбцов, либо у текущего пользователя нет разрешений на этот объект.