将Python批处理插入MSSQL

时间:2019-05-24 23:47:48

标签: python-3.x database

我需要执行数据流任务。因此从特定的SQL表中提取所有数据,并将其传输到其他SQL表中。 我将adodbapi库用于该OLEDB连接,甚至有些人甚至说对于Azure和与Microsoft的合作现在是更好的pyodbc。

所以我要复制SQL表并将其作为元组列表获取。

   source_cursor = adodbapi.connect(sql_database, 0).cursor()
   command_source_data = source_cursor.execute(select_data)
                reader = list()
                source_data =source_cursor.fetchall()
                if source_data is not None:
                    for row in source_data:
                        reader.append(row)

从那里我得到SQL行类型,其中一列包含这样的行:

<class 'list'>: [<SQLrow={environment_name:'New_environment'}>, <SQLrow={environment_name:'new_environment_1'}>, <SQLrow={environment_name:'new_environment2'}>]

接下来我需要清理它才能像批处理插入一样:

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n);

所以我正在这样做:

reader_values =  " ,".join(str(x).strip() for x in reader)  
reader_values = reader_values.replace(',)', ')')
reader_values = reader_values.replace('\')', ')')
reader_values= reader_values.strip()

我得到这些值: '(\'New_environment),(\\ new_environment_1),(\\ new_environment_2 \')'

我的插入由于语法错误而失败。

仅能替换和移动分隔符号()以便能够插入数据。

我的鼻子下面有什么办法让我一直想念吗?

编辑: 就像在调试器上那样,在新程序中,使用空格分隔符就可以了。问题在于提取表列名称并将其放入查询中。

0 个答案:

没有答案