Ошибка odbc sqlstate 42000 номер ошибки 102

General Setting

This is a weird question and I am sorry about that. I actually spent quite some time searching and analyzing our code. We have a job calling a stored procedure which selects some data and then calls other stored procedures (some which names are retrieved using the select-statements, since they might vary). It calls about 20 different of these stored procedures about 10’000 times (summed up the different calls), just varying the parameters. These stored procedures retrieve some data and then inserts the data into our databse.

Version of SQL-Server

This worked fine in Microsoft SQL-Server 2005, but since a little while we upgraded to SQL-Server 2012 (11.0.3000.0) and this problem seems to started occurring since then, or we simply were not aware of it before.

Error

So we get this error every time we execute it:

Executed as user: #DATABASEUSER_RMV_FOR_STACKOVERFLOW. Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'. 
[SQLSTATE 42000] (Error 102).  The step failed.

I know this is very little information, but our scripts are pretty big and I would like to ask what some of you would to to figure out the problem.

What I did so far

I looked at the scripts, did some dry runs (b/c the entire script runs for about an hour… (it’s a nightly job)). The dry runs worked fine. Also we hardly have opening brackets, and they always close. As soon as it retrieves data, after an hour of running it ‘crashes’ with this error…

So what I did:

  • Dry runs (without actually loading the data but calling most of the stored procedures) — ok, success
  • Called the main-store-procedure directly (not as job) — did not work either
  • Read through the code searched for bracket-errors — ok, no bracket errors found
  • Runned with different users: db-admin, my user — did not work either
  • Search through Google/Stackoverflow/a littlbe bit through stackexchange in general

Questions

It looks like everything the script has to do, is done correctly and completely, so we do not understand why it does not return ‘success’ and throws this error message at us.

I could imagine that there might be a field it retrieves which contains an escape character… would that make sense?

Could I set like a universal breakpoint, that the execution of the script would break as soon as this ‘error’ occurs and show me what the data is causing this error… like debugging code in visual studio?

So my main question is: Could you please give me a hint/help how to approach this error in the best way? What I should do?


Job

EXEC MY_SCHEME.dbo.MY_STOREDPROCEDURE_MAIN

MY_STOREDPROCEDURE_MAIN

SET NOCOUNT ON;

-- Insert statements for procedure here
DECLARE @userId INT
DECLARE @fullHistory BIT

SELECT @userId = userId
FROM MY_SCHEME.dbo.USERS
WHERE loginname = 'SOME_NAME'

SET @fullHistory = 0

EXECUTE MY_SCHEME.dbo.spStartMyNightlyJob @userId=@userId, @processFullHistory=@fullHistory

spStartMyNightlyJob

PROCEDURE [dbo].[spStartMyNightlyJob]
    @userId INT,
    @processFullHistory BIT
AS
BEGIN
    SET NOCOUNT ON

    DECLARE @logReport VARCHAR(255)
    SET @logReport = 'NightlyJob'

    INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)
    INSERT INTO TEMP_LOGREPORT (text, report) VALUES('NightlyJob started at ' + CAST(GETDATE() AS VARCHAR), @logReport)
    INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)

    DECLARE taskCursor CURSOR LOCAL FAST_FORWARD READ_ONLY FOR 
        SELECT
            r.taskId, link.Id, i.Description, link.externalId, rdef.name, rdir.fromDB, rdir.toDB,
            rdef.procedureName, rfs.fillStrategyId, rp.parameterId
        FROM MY_TASK r
        LEFT OUTER JOIN some_table_1 link
        ON r.LinkId = link.LinkId
        LEFT OUTER JOIN some_table_2 i
        ON link.Id = i.Id
        LEFT OUTER JOIN some_table_3_TASK_DEFINITION rdef
        ON r.taskDefinitionId = rdef.taskDefinitionId
        LEFT OUTER JOIN some_table_4_TASK_DIRECTION rdir
        ON rdef.directionId = rdir.directionId
        LEFT OUTER JOIN some_table_5_FILL_STRATEGY rfs
        ON rdef.fillStrategyId = rfs.fillStrategyId
        LEFT OUTER JOIN some_table_6_PARAMETER rp
        ON rdef.parameterId = rp.parameterId
        WHERE r.active = 1
        AND rdef.taskDefinitionId NOT LIKE 17


    DECLARE @taskId INT
    DECLARE @someOtherId INT
    DECLARE @someOtherName VARCHAR(255)
    DECLARE @externalSomeOtherId INT
    DECLARE @taskName VARCHAR(50)
    DECLARE @fromDB VARCHAR(50)
    DECLARE @toDB VARCHAR(50)
    DECLARE @storedProcedure VARCHAR(100)
    DECLARE @fillStrategyId INT
    DECLARE @parameterId INT

    OPEN taskCursor
    FETCH NEXT FROM taskCursor
    INTO
        @taskId, @someOtherId , @someOtherName , @externalSomeOtherId , @taskName, @fromDB, @toDB, @storedProcedure,
        @fillStrategyId, @parameterId

    WHILE @@FETCH_STATUS = 0 BEGIN
        INSERT INTO TEMP_LOGREPORT (text, report) VALUES('-------------------------------------------------------------------------------------------------------', @logReport)
        INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Performing task: ' + @taskName, @logReport)
        INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Nightly Job between: ' + @fromDB + ' -> ' + @toDB, @logReport)
        INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Executive procedure: ' + @storedProcedure, @logReport)
        INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Involved : ' + @someOtherName + ' (' + CAST(@someOtherId AS VARCHAR) + ')', @logReport)

        EXECUTE @storedProcedure @someOtherId , @externalSomeOtherId , @fillStrategyId, @parameterId, @userId, @processFullHistory

        INSERT INTO TEMP_LOGREPORT (text, report) VALUES('', @logReport)

        SET @taskId = NULL
        SET @someOtherId = NULL
        SET @someOtherName = NULL
        SET @externalSomeOtherId = NULL
        SET @taskName = NULL
        SET @fromDB = NULL
        SET @toDB = NULL
        SET @storedProcedure = NULL
        SET @fillStrategyId = NULL
        SET @parameterId = NULL

        FETCH NEXT FROM taskCursor
        INTO
            @taskId, @taskId , @someOtherName , @externalSomeOtherId , @taskName, @fromDB, @toDB, @storedProcedure,
            @fillStrategyId, @parameterId
    END
    CLOSE taskCursor
    DEALLOCATE taskCursor

    INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)
    INSERT INTO TEMP_LOGREPORT (text, report) VALUES('NightlyJob finished at ' + CAST(GETDATE() AS VARCHAR), @logReport)
    INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)
    RETURN 0
END

After this it opens up to about 15 different stored procedures, depending which tasks are ‘defined’ every evening..

If I comment-out the actual execution of it

EXECUTE @storedProcedure @someOtherId , @externalSomeOtherId , @fillStrategyId, @parameterId, @userId, @processFullHistory

then it completes without error.

Thanks already for looking at my question ;-)

Здравствуйте. Изучаю внешние источники данных. Создал базу на SQLEXPRESS с одной таблицей и одним ключевым полем. Собственно дальше стал пробовать обратиться к базе из 1С (8.3.10). В конфигураторе добавил таблицу используя строку подключения DRIVER={SQL Server};SERVER=.SQLEXPRESS;UID=sa;PWD=12345;DATABASE=aaa;LANGUAGE=us_english. В режиме предприятия увидел свою табличку, создал несколько записей стандартными средствами. Вроде все ОК, но при редактировании или удалении записей вылезает ошибка

Ошибка внешней базы данных:

ошибка при выполнении запроса

по причине:

Ошибка ODBC. SQLSTATE: 42000

Номер ошибки: 102

Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ‘T1’.

Откуда ноги растут не могу понять, погуглив ничего конкретного не выяснил, я так понимаю, что какая-то временная таблица T1 создается.

В моей таблице 1 поле целочисленное именуется ggg.

Может проблема в том что у меня SQLEXPRESS. Может кто еще сталкивался с такой проблемой?

Общая настройка

Это странный вопрос, и я сожалею об этом. Я действительно потратил некоторое время на поиск и анализ нашего кода. У нас есть работа, вызывающая хранимую процедуру, которая выбирает некоторые данные, а затем вызывает другие хранимые процедуры (некоторые имена извлекаются с помощью операторов select, поскольку они могут меняться). Он вызывает около 20 различных этих хранимых процедур примерно в 10 000 раз (суммирует различные вызовы), просто изменяя параметры. Эти хранимые процедуры извлекают некоторые данные, а затем вставляют данные в нашу базу данных.

Версия SQL-Server

Это отлично работало в Microsoft SQL Server 2005, но с тех пор, как мы перешли на SQL-Server 2012 (11.0.3000.0), и эта проблема, похоже, началась с тех пор, или мы просто не знали об этом раньше.

ошибка

Поэтому мы получаем эту ошибку каждый раз, когда мы ее выполняем:

Executed as user: #DATABASEUSER_RMV_FOR_STACKOVERFLOW. Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102)  Incorrect syntax near ')'.
[SQLSTATE 42000] (Error 102).  The step failed.

Я знаю, что это очень мало информации, но наши скрипты довольно большие, и я хотел бы спросить, что некоторые из вас могли бы решить эту проблему.

Что я сделал до сих пор

Я просмотрел сценарии, сделал несколько сухих пробегов (b/c весь скрипт работает около часа… (это ночная работа)). Сухие трассы прекрасно работали. Также у нас почти нет открывающих скобок, и они всегда закрываются. Как только он извлекает данные, после часа работы он “сбой” с этой ошибкой…

Итак, что я сделал:

  • Сухой запуск (без фактической загрузки данных, но вызов большинства хранимых процедур) – хорошо, успех
  • Вызывается непосредственно основная процедура магазина (не как работа) – не работала ни
  • Прочтите код, искавшийся для ошибок в скобках – ok, ошибок в скобках не найдено
  • Работало с разными пользователями: db-admin, мой пользователь – не работал ни
  • Поиск через Google/Stackoverflow/littlbe бит через stackexchange в целом

Вопросов

Похоже, все, что должен сделать скрипт, сделано правильно и полностью, поэтому мы не понимаем, почему он не возвращает “успех” и бросает это сообщение об ошибке.

Я мог представить, что может быть поле, которое он извлекает, содержащий escape-символ… это имело бы смысл?

Могу ли я установить универсальную точку останова, что выполнение скрипта сломается, как только появится эта ошибка, и покажите мне, что данные вызывают эту ошибку… например, отладка кода в visual studio?

Поэтому мой главный вопрос: не могли бы вы дать мне подсказку/помочь как лучше подойти к этой ошибке? Что я должен делать?


работа

EXEC MY_SCHEME.dbo.MY_STOREDPROCEDURE_MAIN

MY_STOREDPROCEDURE_MAIN

SET NOCOUNT ON;

-- Insert statements for procedure here
DECLARE @userId INT
DECLARE @fullHistory BIT

SELECT @userId = userId
FROM MY_SCHEME.dbo.USERS
WHERE loginname = 'SOME_NAME'

SET @fullHistory = 0

EXECUTE MY_SCHEME.dbo.spStartMyNightlyJob @userId=@userId, @processFullHistory=@fullHistory

spStartMyNightlyJob

PROCEDURE [dbo].[spStartMyNightlyJob]
@userId INT,
@processFullHistory BIT
AS
BEGIN
SET NOCOUNT ON

DECLARE @logReport VARCHAR(255)
SET @logReport = 'NightlyJob'

INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('NightlyJob started at ' + CAST(GETDATE() AS VARCHAR), @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)

DECLARE taskCursor CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
SELECT
r.taskId, link.Id, i.Description, link.externalId, rdef.name, rdir.fromDB, rdir.toDB,
rdef.procedureName, rfs.fillStrategyId, rp.parameterId
FROM MY_TASK r
LEFT OUTER JOIN some_table_1 link
ON r.LinkId = link.LinkId
LEFT OUTER JOIN some_table_2 i
ON link.Id = i.Id
LEFT OUTER JOIN some_table_3_TASK_DEFINITION rdef
ON r.taskDefinitionId = rdef.taskDefinitionId
LEFT OUTER JOIN some_table_4_TASK_DIRECTION rdir
ON rdef.directionId = rdir.directionId
LEFT OUTER JOIN some_table_5_FILL_STRATEGY rfs
ON rdef.fillStrategyId = rfs.fillStrategyId
LEFT OUTER JOIN some_table_6_PARAMETER rp
ON rdef.parameterId = rp.parameterId
WHERE r.active = 1
AND rdef.taskDefinitionId NOT LIKE 17


DECLARE @taskId INT
DECLARE @someOtherId INT
DECLARE @someOtherName VARCHAR(255)
DECLARE @externalSomeOtherId INT
DECLARE @taskName VARCHAR(50)
DECLARE @fromDB VARCHAR(50)
DECLARE @toDB VARCHAR(50)
DECLARE @storedProcedure VARCHAR(100)
DECLARE @fillStrategyId INT
DECLARE @parameterId INT

OPEN taskCursor
FETCH NEXT FROM taskCursor
INTO
@taskId, @someOtherId , @someOtherName , @externalSomeOtherId , @taskName, @fromDB, @toDB, @storedProcedure,
@fillStrategyId, @parameterId

WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('-------------------------------------------------------------------------------------------------------', @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Performing task: ' + @taskName, @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Nightly Job between: ' + @fromDB + ' -> ' + @toDB, @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Executive procedure: ' + @storedProcedure, @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('Involved : ' + @someOtherName + ' (' + CAST(@someOtherId AS VARCHAR) + ')', @logReport)

EXECUTE @storedProcedure @someOtherId , @externalSomeOtherId , @fillStrategyId, @parameterId, @userId, @processFullHistory

INSERT INTO TEMP_LOGREPORT (text, report) VALUES('', @logReport)

SET @taskId = NULL
SET @someOtherId = NULL
SET @someOtherName = NULL
SET @externalSomeOtherId = NULL
SET @taskName = NULL
SET @fromDB = NULL
SET @toDB = NULL
SET @storedProcedure = NULL
SET @fillStrategyId = NULL
SET @parameterId = NULL

FETCH NEXT FROM taskCursor
INTO
@taskId, @taskId , @someOtherName , @externalSomeOtherId , @taskName, @fromDB, @toDB, @storedProcedure,
@fillStrategyId, @parameterId
END
CLOSE taskCursor
DEALLOCATE taskCursor

INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('NightlyJob finished at ' + CAST(GETDATE() AS VARCHAR), @logReport)
INSERT INTO TEMP_LOGREPORT (text, report) VALUES('=======================================================================================================', @logReport)
RETURN 0
END

После этого он открывает около 15 различных хранимых процедур, в зависимости от того, какие задачи “определяются” каждый вечер.

Если я прокомментирую фактическое его выполнение

EXECUTE @storedProcedure @someOtherId , @externalSomeOtherId , @fillStrategyId, @parameterId, @userId, @processFullHistory

то он завершается без ошибок.

Спасибо уже за то, что посмотрел на мой вопрос 😉

Если вы заметили код ошибки базы данных 102, это руководство поможет вам.

ж.Эта ошибка возникает всякий раз, когда вы используете Adaptive Server IBM Power Systems RS / 6000, eServer p5, а также i5 и используете процессорные микросхемы Power3 или более поздней версии – AIX 6.1 TL 8 SP2 или более поздней версии. Поддерживает TCP. API порта завершения ввода-вывода – должен оставаться установленным и доступным на компьютере для запуска SAP ASE. https://infocenter.sybase.com ›html-документ› jon1256241632272 Системные требования – Sybase Infocenter – SAP обнаруживает синтаксическую ошибку в команде или запросе Transact-SQL ®. Эта ошибка может возникать в следующих случаях: Ключевое слово часто пишется неправильно. Вы использовали переменную для получения заголовка базы данных, и ваш запрос содержал идеальную ошибку парсера. Ошибка 102 увеличивается, потому что тип пакета никогда не выполнялся.

грамм.

Указывает на эту синтаксическую ошибку. Дальнейшая связь недоступна в основном потому, что из-за ошибки компонент Database Engine не может обработать ваш текущий оператор.

Может быть вызвано попыткой вывести симметричный ключ с устаревшим шифрованием RC4 или RC4_128, в противном случае в 90 или, возможно, 100 это может быть хорошим режимом.

Если используется симметричный ключ с RC4 или RC4_128, укажите новое шифрование, например, в смысле алгоритмов AES. (Рекомендуется.) Если вы должны использовать rc4, ALTER DATABASE SET COMPATIBILITY_LEVEL, чтобы установить уровень соответствия базы данных на 90 или 100 (не рекомендуется).

Должно быть, это странный вопрос, мне жаль, что он будет завтра утром. На самом деле я потратил много времени на изучение и анализ нашего кода скидки. У нас есть задание, которое вызывает размещенные операции, которые извлекают данные и звонки с сотовых телефонов, а затем другие хранимые процедуры (называемые someThe first activity, которые извлекаются с помощью операторов select, поскольку они могут отличаться). В отличие от этих хранимых процедур, устройство вызывает около 20 000 из 10 000 ящиков (разные сводки), просто с разными типами параметров. Эти собранные процедуры извлекают некоторые данные и затем вставляют мысль в нашу базу данных.

Отлично работал последний Microsoft SQL Server. Но в 2005 году все получали обновление SQL Server 2012 в течение какого-то сезона (11.0.3000 и 0), и эта проблема, похоже, использовалась с тех пор, или мы просто не знали об этом раньше.

Я знаю, что по идее очень мало информации, но наши скрипты все же можно найти довольно подробно. Я также хотел бы спросить, что бы некоторые сделали с вами, чтобы решить эту проблему.

Я заглянул внутрь скриптов, чтобы увидеть, можно ли было как можно больше протестировать некоторые из них (b / n весь скрипт должен занять около часа … (это вечер Работа)). Сухие прогоны сработали так хорошо. К тому же у нас практически нет входных скобок и бизнес всегда закрыт. Как только он получает данные, компания вылетает с этой ошибкой через час, связанный с выполнением …

  • Dry варьируется (фактическая загрузка информации отсутствует, но должны вызываться почти все хранимые процедуры) – успех
  • При правильном имени конкретный процесс основного хранилища напрямую (а не как какое-либо задание) также не должен работать.
  • Чтение законов об ошибках мультимедиа – хорошо, ошибок монтирования не обнаружено
  • Запускать с разными пользователями: db-admin, user – тоже не сложно
  • Поищите в Google / Stackoverflow / немного о Stackexchange в целом.

Похоже, что все, что действительно нужно сделать скрипту, было выполнено правильно и полностью, поэтому мы не понимаем, почему он не возвращает «Успешно» и не обязательно выдает нам вышеуказанное сообщение об ошибке.

Я предполагаю, что теперь может быть поле, которое регулярно содержит escape-символ … имеет ли это смысл?

В какой момент я могу выбрать полную точку останова, чтобы остановить выполнение в отношении сценария, как только возникнет такая «ошибка», и показать мне, каковы доказательства этой ошибки … например, отладка используете Visual My Studio?

p>
пароль ошибки базы данных 102

Часто главный вопрос: не могли бы вы дать мне какой-нибудь совет / помощь, в частности, как лучше всего решить эту ошибку? Что я должен делать ?

<время>

  EXEC MY_SCHEME.dbo.MY_STOREDPROCEDURE_MAIN 

УСТАНОВИТЬ
пароль ошибки базы данных 102

 ;- nocount Вставьте сюда сведения о хирургическом леченииОБЪЯВИТЬ @userId INTОБЪЯВИТЬ @fullHistory BITSELECT @userId подразумевает userIdИЗ MON_SCHEME.dbo.USERSГДЕ Имя пользователя = 'SOME_NAME'НАБОР @fullHistory равен 0ЗАПУСТИТЬ MY_SCHEME.dbo.spStartMyNightlyJob с userId = @ userId, @ processFullHistory = - fullHistory 

ПРОЦЕДУРА

  [dbo]. [spStartMyNightlyJob]    @userId INT,    @processFullHistory BITВ КАЧЕСТВЕ? 'ИЛИ ЧТОНАЧИНАТЬ    УСТАНОВИТЬ АККАУНТ    ОБЪЯВИТЬ @logReport VARCHAR (255)    НАБОР @logReport = 'NightlyJob'    INSERT INTO TEMP_LOGREPORT (текст, отчет) VALUES ('====================================== это равно ================================================ = = == = =========== ', @logReport)    INSERT INTOTEMP_LOGREPORT (текст, отчет) VALUES ('NightlyJob был запущен в + CAST (GETDATE () AS VARCHAR), @logReport)    ВСТАВИТЬ В TEMP_LOGREPORT (текст, отчет) ЗНАЧЕНИЯ ('====================================== = ================================================= = = =========== хай, @logReport)    ОБЪЯВИТЬ taskCursor КУРСОР ЛОКАЛЬНЫЙ FAST_FORWARD READ_ONLY ДЛЯ        ВЫБИРАТЬ            r.taskId, link.Id, i.Description, link.externalId, rdef.name, rdir.fromDB, rdir.toDB,            rdef.procedureName, rfs.fillStrategyId, rp.parameterId        ОТ MA_TACHE r        СНАРУЖИ СЛЕВА Some_table_1 стать членом ссылки        ON r.LinkId соответствует link.LinkId        ЛЕВОЕ НАРУЖНОЕ УПЛОТНЕНИЕ i some_table_2 ON link.Id = i.Id        LEFT OUTER JOIN some_table_3_TASK_DEFINITIR ondef        R on.taskDefinitionId = rdef.taskDefinitionId        LEFT OUTER JOIN some_table_4_TASK_DIRECTION rdir        ON rdef.directionId = rdir.directionId        LEFT OUTER JOIN some_table_5_FILL_STRATEGY rfs        НА rdef.fillStrategyId может rfs.fillStrategyId        LEFT JOIN external some_table_6_PARAMETER rp        ON rdef.parameterId соответствует rp.parameterId        Или «Активный» означает 1       И rdef.taskDefinitionId НЕ НРАВИТСЯ 17    ОБЪЯВИТЬ @taskId INT    ОБЪЯВИТЬ @someOtherId INT    ОБЪЯВИТЬ @someOtherName VARCHAR (255)    ОБЪЯВИТЬ @externalSomeOtherId INT    ОБЪЯВИТЬ @taskName VARCHAR (50)    ОБЪЯВИТЬ @fromDB VARCHAR (50)    ОБЪЯВИТЬ @toDB VARCHAR (50)    ОБЪЯВИТЬ @storedProcedure VARCHAR (100)    ОБЪЯВИТЬ @fillStrategyId INT    ОБЪЯВИТЬ @parameterId INT    Открыть задачуКурсор    ПОЛУЧИТЬ СЛЕДУЮЩИЙ ОТ taskCursor    V        @taskId, @someOtherId, @someOtherName, @externalSomeOtherId, @taskName, @fromDB, @toDB, @storedProcedure,        @fillStrategyId, @parameterId    ПОКА @@ FETCH_STATUS = 0 НАЧАТЬ        ВСТАВИТЬ В TEMP_LOGREPORT (текст, отчет) ЗНАЧЕНИЯ ('--------------------------------------- включая ------------------------------------------------ - -------------- ', @logReport)        INSERT INTO TEMP_LOGREPORT (текст, отчет) VALUES ('Задача в процессе:' + @taskName, @logReport)        INSERT INTO TEMP_LOGREPORT (текст, отчет) VALUES ('Ночная работа между:' + @fromDB + lol -> '+ @toDB, @logReport)        INSERT INTO TEMP_LOGREPORT (текст, отчет) VALUES ('Процедура выполнения: haya + @storedProcedure, @logReport)        INSERT INTO TEMP_LOGREPORT (текст, отчет) VALUES ('Вовлечено:' + @someOtherName + woul ('+ CAST (@someOtherId AS VARCHAR) +') ', @logReport)        НАЧАТЬ @storedProcedure @someOtherId, @externalSomeOtherId, @fillStrategyId, @parameterId, @userId, @processFullHistory        ВСТАВИТЬ В TEMP_LOGREPORT (текст, отчет) ЗНАЧЕНИЯ ('', @logReport)        SET @taskId равен NULL        НАБОР @someOtherId = NULL        НАБОР @someOtherName = NULL        НАБОР @externalSomeOtherId = NULL        SET @taskName равно NULL        УСТАНОВИТЬ @fromDB = NULL        НАБОР @toDB = NULL        SET @storedProcedure эквивалентен NULL        НАБОР @fillStrategyId = NULL        УСТАНОВИТЬ @parameterId = NULL        ПОЛУЧИТЬ СЛЕДУЮЩИЙ ОТ taskCursor        V            @taskId, @taskId, @someOtherName, @externalSomeOtherId, @taskName, @fromDB, @toDB, @storedProcedure,            @fillStrategyId, @parameterId    КОНЕЦ    ЗАКРЫТЬ курсор задачи    DEALLOCATE Задача курсора    VPUT IN TEMP_LOGREPORT (текст, отчет) VALUES ('==================================== равно = = ================================================ = = =========== ', @logReport)    INSERT INTO TEMP_LOGREPORT (текст, отчет) VALUES ('NightlyJob заканчивается на' + CAST (GETDATE () AS VARCHAR), @logReport)    ВСТАВИТЬ В TEMP_LOGREPORT (текст, отчет) ЗНАЧЕНИЯ ('====================================== = ================================================= означает == =========== ', @logReport)    ВОЗВРАТ 0КОНЕЦ 

Затем он открывает до 24 нескольких хранимых процедур, в зависимости от того, какие задачи были «поставлены» каждый вечер.

  EXECUTE @storedProcedure @someOtherId will, @externalSomeOtherId, @fillStrategyId, @parameterId, @userId, @processFullHistory 

г.

Hi,

What I need to do is take some data from a local database and send it to a remote mysql table. The Linked server is all set up and working.

When everything is put into a query it runs fine but if I put it into a job it fails with the above error.

Originally I had the different parts in different steps but it fails if they are combined into one as well.

here are the steps:

STEP 1:

EXEC(‘TRUNCATE TABLE trends_collection.productsStockTemp’) AT «TRENDS_WEB_DB»

STEP 2:

INSERT openquery(TRENDS_WEB_DB,
‘SELECT 
productsStockTemp.Code,
productsStockTemp.PartName, 
productsStockTemp.Quantity, 
productsStockTemp.DueDate,
productsStockTemp.SortCode
FROM trends_collection.productsStockTemp’)
SELECT 
.BomStructure.ParentPart,
InvMaster.LongDesc,
InvWarehouse.QtyOnHand — InvWarehouse.QtyAllocated — InvWarehouse.QtyAllocatedWip,
[PorMasterDetail.MLatestDueDate,
BomStructure.ReasonForChange
FROM
BomStructure INNER JOIN InvMaster ON BomStructure.Component = InvMaster.StockCode 
INNER JOIN InvWarehouse ON BomStructure.Component = InvWarehouse.StockCode
INNER JOIN PorMasterDetail ON .BomStructure.Component = PorMasterDetail.MStockCode
WHERE
BomStructure.ReasonForChange > ‘0’
AND 
PorMasterDetail.MCompleteFlag <> ‘Y’

STEP 3:

EXEC(‘ALTER TABLE trends_collection.productsStock RENAME TO trends_collection.productsStockOld’) AT «TRENDS_WEB_DB»

STEP 4:

EXEC(‘ALTER TABLE trends_collection.productsStockTemp RENAME TO trends_collection.productsStock’) AT «TRENDS_WEB_DB»

STEP 5:

EXEC(‘ALTER TABLE trends_collection.productsStockOld RENAME TO trends_collection.productsStockTemp’) AT «TRENDS_WEB_DB»

Any help would be appreciated.

  • Ошибка odbc sqlstate 22018 номер ошибки 0
  • Ошибка odbc sqlstate 08004
  • Ошибка odbc sqlstate 08001 номер ошибки 101
  • Ошибка odbc sqlstate 01000 номер ошибки 0
  • Ошибка odbc microsoft драйвер odbc