Saltar al contenido

inserción masiva básica de pyodbc

Te recomendamos que revises esta solución en un entorno controlado antes de enviarlo a producción, saludos.

Solución:

Aquí hay una función que puede hacer la inserción masiva en la base de datos de SQL Server.

import pyodbc
import contextlib

def bulk_insert(table_name, file_path):
    string = "BULK INSERT  FROM '' (WITH FORMAT = 'CSV');"
    with contextlib.closing(pyodbc.connect("MYCONN")) as conn:
        with contextlib.closing(conn.cursor()) as cursor:
            cursor.execute(string.format(table_name, file_path))
        conn.commit()

Esto definitivamente funciona.

ACTUALIZACIÓN: He notado en los comentarios, además de codificar regularmente, que pyodbc es mejor compatible que pypyodbc.

NUEVA ACTUALIZACIÓN: elimine conn.close() ya que la declaración with maneja eso automáticamente.

La mejor manera de manejar esto es usar la función pyodbc executemany.

ds1Cursor.execute(selectSql)
result = ds1Cursor.fetchall()


ds2Cursor.executemany('INSERT INTO [TableName] (Col1, Col2, Col3) VALUES (?, ?, ?)', result)
ds2Cursor.commit()

valoraciones y reseñas

Nos puedes añadir valor a nuestra información tributando tu veteranía en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *