Как избежать dbo в bcpy (массовое копирование Python) при передаче данных на сервер SQL из Python - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь перенести данные из pandas dataframe в таблицу сервера sql, используя bcpy в сценарии python .

database : db_name
table : schema_name.table_name

, но по умолчанию при запуске создается схема dbo ивыведите ошибку, как показано ниже:

A valid table name is required for in, out, or format options. 
db_name.dbo.schema_name.table_name

на самом деле, я дал имя схемы как schema_name.

как избежать имени схемы по умолчанию dbo?

Если я дал имя схемы,

database : database_name
schema : schema_name
table : table_name

Создает database_name.schema_name.table_name.но все же его показ

A valid table name is required for in, out, or format options.
failed : Bcp command failed

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

Попробуйте указать базу данных, схему и имя таблицы в квадратных скобках и посмотрите, работает ли она.

database :   [database_name]
schema   :   [schema_name]
table    :   [table_name]
1 голос
/ 25 сентября 2019

Вам не нужно указывать имя схемы при упоминании имени таблицы.

Вы можете использовать приведенную ниже команду bcp для загрузки данных из файла csv в таблицу.Запишите ваш фрейм данных в CSV-файл, а затем выполните приведенную ниже команду.

df.to_csv("data.csv",index=False)
command = 'bcp "dbo.table_name" in "data.csv" -S"server_name" -d"DB_name" -F2 -c -t"," - U"user_name" -P"password" -e error.txt'
os.system(command)
0 голосов
/ 26 сентября 2019
  1. На вашем компьютере должна быть установлена ​​утилита BCP (Bulk Copy Program) для SQL Server.

  2. сведения о базе данных должны быть в форме словаря

    sql_config = {database : database_name schema : schema_name table : table_name}

Если имя схемы не указано, по умолчанию dbo будет именем схемы.

при установке всех входов в bcp команда, имя таблицы sql будет database_name.schema_name.table_name

...