Поделиться через


Соединение с помощью bcp

Скачать драйвер ODBC

Служебная программа bcp доступна с драйвером Microsoft ODBC для SQL Server на Linux и macOS. На этой странице описаны отличия от версии bcp для Windows.

  • Признаком конца поля является символ табуляции ("\t").

  • Признаком конца строки является символ новой строки ("\n").

  • Текстовый режим является предпочтительным форматом для файлов данных и файлов форматирования bcp, расширенный набор символов.

Примечание.

Обратная косая черта "\" в аргументе командной строки должна быть процитирована или экранирована. Например, чтобы указать символ новой строки в качестве пользовательского признака конца строки, необходимо использовать один из следующих способов:

  • -r\\n
  • -r"\n"
  • -r'\n'

Ниже приведен пример вызова команды bcp для копирования строк таблицы в текстовый файл:

bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx

Доступные варианты

В текущем выпуске доступны следующие параметры и элементы синтаксиса:

[database.]schema.table in data_file | out data_file

-a размер_пакета
Указывает число байтов в каждом сетевом пакете, отправляемом от сервера и к серверу.

-b batch_size
Указывает количество строк в каждом пакете импортированных данных.

-c
Использует символьный тип данных.

-d имя_базы_данных
Указывает базу данных, с которой надо соединиться.

-D
Значение, передаваемое в параметр bcp -S, интерпретируется как имя источника данных (DSN). Дополнительные сведения см. в разделе "Поддержка имени DSN в sqlcmd и bcp" статьи Соединение с помощью sqlcmd.

-e error_file
Указывает полный путь к файлу ошибок, используемому для хранения строк, которые служебная программа bcp не может передать из файла в базу данных.

-E
Использует значение или значения идентификаторов в файле импортированных данных для столбца идентификаторов.

-f format_file
Указывает полный путь к файлу форматирования.

-F first_row
Указывает номер первой строки для экспорта из таблицы или импорта из файла данных.

-G
Этот параметр используется клиентом при подключении к База данных SQL Azure, Управляемый экземпляр SQL Azure или Azure Synapse Analytics, чтобы указать, что пользователь проходит проверку подлинности с помощью идентификатора Microsoft Entra (ранее — Azure Active Directory). Его можно объединить с параметром -P, чтобы использовать проверку подлинности токена доступа (версия 17.8+). Для использования параметра -G требуется bcp версии не ниже 17.6. Чтобы определить версию, выполните команду bcp -v.

Внимание

Этот -G параметр применяется только к База данных SQL Azure, Управляемый экземпляр SQL Azure и Azure Synapse Analytics. Интерактивная проверка подлинности Microsoft Entra в настоящее время не поддерживается в Linux или macOS. Для интегрированной проверки подлинности Microsoft Entra требуется Microsoft ODBC Driver 17 для SQL Server версии 17.6.1 или более поздней и правильно настроенная среда Kerberos.

-k
Указывает, что пустые столбцы во время операции должны хранить значение NULL вместо любых вставляемых значений по умолчанию для столбцов.

-l
Указывает время ожидания входа. Параметр -l задает время ожидания (в секундах) для входа в SQL Server при попытке подключения к серверу. Значение времени ожидания по умолчанию — 15 секунд. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534. Если указанное значение не является числом или выходит за пределы указанного диапазона, программа bcp выдает сообщение об ошибке. Значение 0 указывает на бесконечное время ожидания.

-L last_row
Указывает номер последней строки для экспорта из таблицы или импорта из файла данных.

-m max_errors
Указывает максимальное количество синтаксических ошибок, которые могут произойти до отмены операции программы bcp.

-n
Использует собственные типы данных (базы данных) для выполнения операции массового копирования.

-P пароль
Указывает пароль для идентификатора имени входа. При использовании с параметром -G без параметра -U указывает файл, содержащий токен доступа (версия 17.8+). Файл токена должен быть в формате UTF-16LE (без метки порядка байтов).

Маркеры доступа можно получить с помощью различных методов. Важно убедиться, что маркер доступа имеет побайтовое соответствие, так как он будет отправлен как есть. Ниже приведен пример команды, которая позволяет получить маркер доступа. Команда использует команды Azure CLI и Linux и сохраняет их в файл в правильном формате. Если используемая по умолчанию схема кодирования системы или терминала — не ASCII или UTF-8, возможно, вам потребуется изменить параметры iconv. Защитите результирующий файл и удалите его, если он больше не нужен.

az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile

-q
Выполняет инструкцию SET QUOTED_IDENTIFIER ON в соединении между bcp служебной программой и экземпляром SQL Server.

-r row_terminator
Указывает признак конца строки.

-R
Указывает, что данные валюты, даты и времени массово копируются в SQL Server с помощью регионального формата, определенного для параметра языкового стандарта клиентского компьютера.

-S server
Указывает имя экземпляра SQL Server для подключения или, если используется -D, dsN.

-t field_terminator
Указывает признак конца поля.

-T
Указывает, что служебная bcp программа подключается к SQL Server с доверенным подключением (встроенная безопасность).

-u
Разрешает доверять сертификату сервера. (Доступно начиная с версии bcp 18)

-U имя_для_входа
Указывает идентификатор входа, используемый для подключения к SQL Server.

-v
Выводит номер версии и сведения об авторских правах для программы bcp.

-w
Использует символы Юникода для выполнения операции массового копирования.

В этом выпуске поддерживаются символы Latin-1 и UTF-16.

-Y[s|m|o]
Задает режим шифрования подключения. Допустимые варианты: Strict, Mandatory и Optional. При использовании -Y без параметров применяется режим шифрования Mandatory, что эквивалентно -Ym. (Доступно начиная с версии bcp 18)

Недоступные параметры

В текущем выпуске следующие параметры и элементы синтаксиса недоступны:

-C
Указывает кодовую страницу данных в файле данных.

-h hint
Указывает одну или несколько подсказок, используемых во время выполнения массового импорта данных в таблицу или представление.

-i входной_файл
Указывает имя файла ответов.

-N
Использует собственные типы данных (базы данных) для несимвольных данных и символы Юникода для символьных данных.

-o выходной_файл
Указывает имя файла, который принимает перенаправленные из командной строки выходные данные.

-V (80 | 90 | 100)
Использует типы данных из более ранней версии SQL Server.

-x
При использовании вместе с параметрами format и -f файл_формата приводит к созданию файла форматирования на основе XML. По умолчанию создается файл форматирования в формате, отличном от XML.

См. также

Подключение с помощью sqlcmd
Заметки о выпуске