在SQLServer数据库中执行多个INSERT子句会导致管道中断

时间:2019-04-08 04:45:44

标签: sql-server python-3.x loops insert broken-pipe

下面的代码在运行Java客户端通过简单地调用命令“ py scriptname.py”的服务器上运行。该脚本崩溃有一个非常特殊的用例,这使我头疼。

该脚本在任何其他时间都可以很好地运行,除非是在星期一初次运行时。我的主要怀疑是周末执行数据库的地方以某种方式“睡眠”,这会导致崩溃。如果此代码是在几分钟后手动执行的,只需执行相同的命令“ py scriptname.py”,则一切正常。

但是,这使我相信代码中存在一个基本问题。导致错误的代码是这样的:

for row in self.cursorLocal.fetchall():
        sqlName = "INSERT INTO TABLE ATTRIBUTE1, ATTRIBUTE2 VALUES('{}','{}')".format(row[1],row[2])
        print(sqlName) # <-- line 321
        self.cursorName.execute(sqlName)
        self.conName.commit()

例外: [Errno 32]管道破损

Traceback: 
Traceback (most recent call last): File "C:\folder\scriptname.py", line 88, in __init__ self.InsertTo() File "C:\folder\scriptname.py", line 321, in InsertTo print(sqlName) BrokenPipeError: [Errno 32] Broken pipe 

我尝试了许多不同的方案来尝试在本地环境中复制此方案,但是没有任何运气。但是,每个星期一早上都会不断发生此错误。我也真的感到困惑,为什么打印语句会引发错误。

0 个答案:

没有答案