Мне нужно сделать задачу потока данных.Поэтому из конкретной таблицы 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 \ ')'
А моя вставка не удалась из-за синтаксической ошибки.
Просто не могу заменить и переместить знак разделения (), чтобы можно было вставлять данные.
Есть ли какое-то решение под моим носомчто я пропускаю?
РЕДАКТИРОВАТЬ: Это было на отладчике, как это, в новой программе все было хорошо с разделителями пробела.Проблема заключалась в том, чтобы извлечь имена столбцов таблицы и поместить их в запрос.