我需要执行数据流任务。因此从特定的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 \')'
我的插入由于语法错误而失败。
仅能替换和移动分隔符号()以便能够插入数据。
编辑: 就像在调试器上那样,在新程序中,使用空格分隔符就可以了。问题在于提取表列名称并将其放入查询中。