在MSSQL中处理315批次之后,BULK INSERT命令以静默方式退出而没有任何错误/异常

问题描述 投票:1回答:1

我将非常庞大的数据集(数十亿行)存储到MSSQL Server 2008 R2表中。使用BCP命令将数据推送到表。但是在处理315 batches后,BCP只是默默地退出,我用different batch size (1 record per batch, 100 record per batch, 1000 record per batch, 1000000 record per batch)进行了测试。但它不取决于批量大小,只是在处理315 batches后退出。

使用BCP执行python pyodbc命令。

我不知道为什么会发生这种情况。我应该采取什么方法来解决这个问题?对此的支持将非常有帮助。

python-3.x batch-file sql-server-2008-r2 bulkinsert pyodbc
1个回答
1
投票
  • 该问题与数据库游标对象有关。
  • 这背后的根本原因是数据库游标对象变满了,我不得不像遍历游标对象一样进行分页。
  • 因为光标是我无法捕获我的存储过程的最新输出。在我的情况下,我的光标在315之后变满(从存储过程返回语句。插入语句的示例输出,如10 rows inserted)。

示例python代码

import pyodbc

conn = pyodbc.connect(username, password)

query = "a stored procedure"

# Execute query and get cursor object
cursor = conn.execute(query)

# Clearing cursor
while cursor.nextset():
    result  = cursor.fetchall() if cursor.description else None
© www.soinside.com 2019 - 2024. All rights reserved.