2017-02-02 7 views
-2

У меня есть .sql-файл, который имеет несколько запросов sql. при выполнении этого файла в номерном знаке, используя команду.sql файл для выполнения нескольких запросов DB2

db2 -vtf C: \ путь \ к \ somefile.sql

всегда получаю ошибку

DB21034E Команда обрабатывалась как SQL, потому что это была не действительная команда процессора командной строки . Во время обработки SQL он возвращался: SQL0007N Оператор не обрабатывался, потому что в инструкции SQL был включен символ, который не является , поддерживаемый в операторах SQL. Недопустимый символ: "\". Текст, предшествующий недопустимому символу: «f D:». SQLSTATE = 42601 db2 => -tvf D: \ testquery.sql

В файле .sql я эти экспортные запросы.

export to ACTIONTAKENMASTER.rar of del select * from SERVEIT.ACTIONTAKENMASTER 
export to ACTIVITYACTION.rar of del select * from SERVEIT.ACTIVITYACTION 
export to ADDRESSMASTER.rar of del select * from SERVEIT.ADDRESSMASTER 
export to ADVISE_INDEX.rar of del select * from SERVEIT.ADVISE_INDEX 

может любой помочь!

+1

Ошибка не соответствует вашему коду –

+0

Но я получаю ту же ошибку с данным сценарием. –

+0

Где находится файл "D: \ testquery.sql"? –

ответ

1

С опцией -t вы сообщаете DB2 CLP, что ваши операторы заканчиваются точкой с запятой (;). Это переопределяет значение по умолчанию для CLP, где операторы только однострочные.

У вас есть 2 варианта:

  1. Добавить точку с запятой в конце каждого оператора
  2. уронить -t вариант: Выполнить db2 -vf C:\path\to\somefile.sql

Вариант 2 будет работать только тогда, когда каждое заявление в вашем файле находится в одной строке.

+0

Я выполнил оба варианта, но все равно получаю ту же ошибку. –

+1

Вам нужно запустить команду из командного окна DB2 (которая будет выглядеть как приглашение DOS), а не процессор командной строки DB2 (который имеет приглашение 'db2 =>'). –