Сохранение / экспорт XML - SQL Server - Направление копирования должно быть "in", "out" или "format"
Я пытаюсь экспортировать XML, сгенерированный из SQL-запроса. Я пытаюсь вот так
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
EXEC xp_cmdshell 'bcp "SELECT @xml" -S <SERVERNAME> -D <DATABASE_NAME> -U <UserName> -P <PASSWORD> queryout "E:\test.xml" -T -c -t,'
пытаясь это, я получил результат, указанный ниже
Copy direction must be either 'in', 'out' or 'format'.
usage: bcp {dbtable | query} {in | out | queryout | format} datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-L lastrow] [-b batchsize]
[-n native type] [-c character type] [-w wide character type]
[-N keep non-text native] [-V file format version] [-q quoted identifier]
[-C code page specifier] [-t field terminator] [-r row terminator]
[-i inputfile] [-o outfile] [-a packetsize]
[-S server name] [-U username] [-P password]
[-T trusted connection] [-v version] [-R regional enable]
[-k keep null values] [-E keep identity values]
[-h "load hints"] [-x generate xml format file]
[-d database name] [-K application intent]
Я не смог выяснить проблему.
Мои вопросы-
Что я делаю не так?
Как сохранить / экспортировать XML в файл на диске?
1 ответ
Я не уверен, что вы пытаетесь сделать с этой командой:
exec xp_cmdshell 'bcp "SELECT @xml" -S <SERVERNAME> -D <DATABASE_NAME> -U <UserName> -P <PASSWORD> queryout "E:\test.xml" -T -c -t,
То, что я могу вам сказать, сразу же неправильно:
Вы смешиваете аутентификацию с -T и также -U -P
Ваш запрос "select @xml" недействителен
Вы можете попробовать что-то вроде:
exec xp_cmdshell 'bcp "Select [test1]=1 for xml path" queryout e:\test.xml -T -c'
test.xml будет выглядеть так:
<row><test1>1</test1></row>
И построить до того, какой выход вы ищете.
По умолчанию xp_cmdshell
выполняется на сервере как учетная запись службы сервера sql, хотя учетную запись прокси можно настроить.
Вы можете посмотреть в for xml
чтобы убедиться, что вы говорите серверу sql, как вы хотите, чтобы xml форматировался.
Рекомендации: