я должен использовать BCP инструмента командной строки для экспорта данных из базы данных SQL сервера в файл в красном Сервер Hat. Я (по-видимому) с использованием действительных утверждений, но bcp не производит каких-либо результатов/результатов. Однако при выполнении операторов с отсутствующими или недопустимыми параметрами отображается соответствующая ошибка. Я искал причину этой проблемы (например, дефектная установка, неправильное использование bcp, отсутствие разрешений или любой другой известный конфликт) и как исправить это.BCP ни дает результаты, ни выводит что-либо при использовании действительных заявлений, но это не бросать ошибки при передаче недопустимых параметров
BCP заявление: использование
bcp fully_qualified_table_name out ./data.txt -c -S server -U user -P password
BCP: версия
usage: /opt/microsoft/bin/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] [-q quoted identifier]
[-t field terminator] [-r row terminator]
[-a packetsize] [-K application intent]
[-S server name or DSN if -D provided] [-D treat -S as DSN]
[-U username] [-P password]
[-T trusted connection] [-v version] [-R regional enable]
[-k keep null values] [-E keep identity values]
[-h "load hints"] [-d database name]
BCP:
BCP - Bulk Copy Program for Microsoft SQL Server.
Copyright (C) Microsoft Corporation. All Rights Reserved.
Version: 11.0.2270.0
версия SQL Server (SELECT @@VERSION
):
Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600:) (Hypervisor)
Распределение:
Red Hat Enterprise Linux 6.7 (KornShell).
недопустимые заявления с соответствующим сообщением об ошибке (примеры).
bcp THAT_TUB_ACE.oh_nerd.table_name out ./data.txt -c -S sr._bear -U you_sr. -P pass_sword
SQLState = S1T00, NativeError = 0
Error = [unixODBC][Microsoft][ODBC Driver 11 for SQL Server]Login timeout expired
SQLState = 08001, NativeError = 11001
Error = [unixODBC][Microsoft][ODBC Driver 11 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
SQLState = 08001, NativeError = 11001
Error = [unixODBC][Microsoft][ODBC Driver 11 for SQL Server]TCP Provider: Error code 0x2AF9
...
bcp fully_qualified_table_name ./data.txt -c -S valid_server -U valid_user -P bad_word
bcp fully_qualified_table_name out ./data.txt -c -S valid_server -U valid_user -P bad_word
SQLState = 28000, NativeError = 18456
Error = [unixODBC][Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'valid_user'.
РЕЗЮМЕ.
Цель состоит в том, чтобы создать файл данных, используя следующий синтаксис (или аналогичный):
bcp fully_qualified_table_name out ./data.txt -c -S server -U user -P password
Факты таковы:
- При запуске действительного BCP заявление нет ничего в окне (без вывода) и не создается файл данных.
- Я не могу использовать опцию
-T
(доверенное соединение с помощью встроенной системы безопасности) для BCP так что я должен указать сервера, имя пользователя и пароль. - Пробовал
queryout
вариант на очень простом столике уже, но все еще не повезло. - Учетные данные действительны, я успешно их протестировал, используя
sqlcmd
следующим образом:sqlcmd -S server -U user -P password -Q 'SELECT * FROM really_small_table'
. - В BCP заявления по «Недействительные заявления с соответствующим сообщением об ошибке (примеры)» раздел этого вопроса являются лишь примерами недопустимых высказываний, чтобы показать, что BCP на самом деле что-то делает, но дает ожидаемые результаты.
Доступен ли ваш пользователь для записи в папку, в которую вы хотите записать выходной файл? Это нормально, чтобы получить ошибки для плохих учетных данных, поскольку BCP сначала пытается подключиться к SQL-серверу, поэтому, если это не удается, он не попытается сделать что-либо еще. –
Привет @IonutTulai, разрешения правильные. –