-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Labels
triage neededFor new issues, not triaged yet.For new issues, not triaged yet.
Description
List of Rows from cursor.fetchall() cannot be used directly in bulkcopy
Data retrieved using cursor.fetchall() is of type List[Row]. Intuitively I would expect to be able to use these objects directly in cursor.bulkcopy(), but I get an exception.
File "/home/vscode/.local/lib/python3.14/site-packages/mssql_python/cursor.py", line 2706, in bulkcopy
raise type(e)(str(e)) from None
ValueError: Expected tuple, got: 'Row' object cannot be cast as 'tuple'
To reproduce
import mssql_python
conn = mssql_python.connect("...")
cursor = conn.cursor()
cursor.execute(f"SELECT TOP 10 * FROM table_A")
data = cursor.fetchall()
copy_result = cursor.bulkcopy("table_B", data)
conn.close()(This is a simplified example - in reality I stumpled on this while trying to migrate data between two databases on different servers).
Expected behavior
I expected the bulkcopy method to accept a data argument of type List[Row].
Further technical details
Python version: 3.14
SQL Server version: Microsoft SQL Azure 12.0.2000.8
Operating system: Linux 39a7e4bda3b8 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 GNU/Linux
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
triage neededFor new issues, not triaged yet.For new issues, not triaged yet.