Ошибка при использовании SQLCMD в PDW

Я использую SQLCMD в PDW для извлечения данных в плоский файл. Синтаксис командной строки приведен ниже:

sqlcmd -S "10.20.30.40,19001" -d MyPDW_DB -U PDW_User -P Password1 -Q "SET QUOTED_IDENTIFIER ON; SELECT * FROM MyPDW_DB.dbo.SampleFact" -o "FactOut.txt" -s"|"

Когда я пытаюсь запустить пакетный файл, я получаю следующую ошибку:

Сообщение 104409, уровень 16, состояние 1, сервер PdwTdsServer, строка 1. Установка для параметра QuotedIdentifier значения «ВЫКЛ» не поддерживается.

Я предполагаю, что это связано с тем, что в имени сервера (IP-адрес, номер порта) есть «запятая». Я могу использовать эту команду для извлечения данных из таблиц SQL. Любая идея о том, как я могу заставить это работать для PDW?

заранее спасибо


person Triumph Spitfire    schedule 19.01.2015    source источник
comment
Попробуйте удалить SET QUOTED_IDENTIFIER ON; из вашего запроса, поскольку вы не используете какие-либо ключевые слова в качестве имени таблицы.   -  person knkarthick24    schedule 19.01.2015
comment
Спасибо за ответ. Я тоже так пробовал. Но я получаю ту же ошибку.   -  person Triumph Spitfire    schedule 19.01.2015
comment
Какую ошибку вы получаете сейчас? Я считаю, что это не то же самое, что и выше, поскольку вы удалили установку QuotedIdentifier в 'OFF' .   -  person knkarthick24    schedule 19.01.2015
comment
Я получаю точно такую ​​же ошибку: Сообщение 104409, Уровень 16, Состояние 1, Сервер PdwTdsServer, Строка 1 Установка QuotedIdentifier в 'OFF' не поддерживается. Вот почему я подозреваю, что это как-то связано с запятая в имени сервера, хотя сообщение об ошибке не очень полезно.   -  person Triumph Spitfire    schedule 19.01.2015
comment
попробуйте запустить это: sqlcmd -S 10.20.30.40 -d MyPDW_DB -U PDW_User -P Password1 -Q SELECT * FROM MyPDW_DB.dbo.SampleFact -o FactOut.txt   -  person knkarthick24    schedule 19.01.2015
comment
Я не могу подключиться к экземпляру PDW без номера порта. Тем не менее, я попробовал то, что вы предложили, но это тоже не сработало. :-|   -  person Triumph Spitfire    schedule 19.01.2015
comment
Попробуйте прочитать это: stackoverflow.com/questions/9478957/   -  person knkarthick24    schedule 19.01.2015


Ответы (1)


У меня это работает частично.

sqlcmd -S "10.20.30.40,19001" -d MyPDW_DB -U PDW_User -P Password1 -I -Q "SELECT * FROM MyPDW_DB.dbo.SampleFact" -o "FactOut.txt" -s"|"

Для установки параметра quoted_identifier в положение OFF можно использовать параметр «-I». Однако я все еще пытаюсь найти альтернативу опции «SET NOCOUNT ON», которая не поддерживается в PDW. Если кто-то может помочь мне с этим, я был бы очень признателен.

person Triumph Spitfire    schedule 21.01.2015