Не найдена авторизованная подпрограмма GETVARIABLE типа FUNCTION с совместимыми аргументами.

Я мигрировал схему DB2 v9.1.700.855 на SQL Server 2012 с помощью инструмента "SSMA (Майкрософт SQL Server Migration Assistant) для DB2", я могу установить соединение, но он показывает ошибку: "Произошла ошибка при сборе данных" . Я проверил файл журнала, и он показывает следующее сообщение

Авторизованная подпрограмма с именем "GETVARIABLE" типа "FUNCTION" с совместимыми аргументами не найдена.

Как я могу решить эту ошибку?


person Lucas Carvalho    schedule 09.01.2017    source источник
comment
Я пытаюсь выполнить журнал файла запроса в командной строке режима db2, та же ошибка. sql SELECT 'DB2 v' substr(SYSTEM.GETVARIABLE('SYSIBM.VERSION'), 4, 2) '.' substr(SYSTEM>GETVARIABLE('SYSIBM.VERSION'), 6, 2) AS version FROM SYSIBM.SYSDUMMY1   -  person Lucas Carvalho    schedule 10.01.2017
comment
Откуда это SYSTEM.GETVARIABLE? В DB2 такой функции нет. Я тоже не уверен насчет SYSIBM.VERSION.   -  person mustaccio    schedule 10.01.2017


Ответы (1)


Переменные сеанса IBM DB2 не имеют прямого эквивалента в SQL Server. Вам нужно будет найти команду GETVARIABLE, посмотреть, какая информация извлекается, и найти эквивалент SQL Server (если есть).

person Laughing Vergil    schedule 09.01.2017
comment
Но как мне это сделать в SSMA? Я пытаюсь выполнить журнал файла запроса в командной строке режима db2, та же ошибка. sql SELECT 'DB2 v' substr(SYSTEM.GETVARIABLE('SYSIBM.VERSION'), 4, 2) '.' substr(SYSTEM>GETVARIABLE('SYSIBM.VERSION'), 6, 2) AS version FROM SYSIBM.SYSDUMMY1 - person Lucas Carvalho; 10.01.2017
comment
Этот код пытается проанализировать версию DB2, в которой выполняется код. Поскольку он не работает в DB2, переменная SYSIBM.VERSION не существует. Примерно эквивалентная команда для SQL Server будет выглядеть примерно так: SELECT Left(@@Version, Charindex(' -', @@version) -1). Поскольку не гарантируется, что это именно то, что вам нужно или нужно, человек, выполняющий миграцию, должен найти подобные конфликты и исправить их вручную. Такова, к сожалению, реальность автоматического преобразования кода между системами, имеющими разные, несовместимые команды. - person Laughing Vergil; 10.01.2017
comment
Извините, я думаю, вы не понимаете, я выполнил этот sql-запрос в командной строке DB2, и ошибка та же. - person Lucas Carvalho; 10.01.2017
comment
Сообщение об ошибке s30.postimg.org/wbmcvjcsx/print_error_db2.png на языке pt-br , но такой же. - person Lucas Carvalho; 10.01.2017