Я пытаюсь запросить данные с нашего Oracle сервера через наш SQL сервер. Чтобы выполнить это в режиме тонкого клиента, я использую OpenQuery. Я хотел бы создать одну табличную функцию, которая может использоваться для запроса различных связанных таблиц по мере необходимости. Я не могу понять синтаксис, чтобы заставить это работать. Вот что у меня так далеко. Любая помощь очень ценится!
CREATE FUNCTION [dbo].[fnTEST](
@Table varchar (100),
@Fields varchar (1000),
@Condition varchar(5000)
)
RETURNS
@TEST TABLE()
AS
BEGIN
DECLARE @OPENQUERY nvarchar(4000);
DECLARE @TSQL nvarchar(4000);
SET @OPENQUERY = 'SELECT * FROM OPENQUERY([TEST-Link],'''
SET @TSQL = 'SELECT ' + @Fields + ' FROM TEST.' + @Table + ' WHERE ' + @Condition + ''')'
EXEC (@OPENQUERY+@TSQL)
END;
Я получаю в настоящее время ошибку:
Msg 102, Level 15, State 1, Procedure fnTEST, Line 12 [Batch Start Line 7]
Incorrect syntax near ')'.
Выделено в @TEST TABLE ()