Python HY090-无效的字符串或缓冲区长度(0)
我试图通过使用带有许多insert语句的.sql文件向表中插入数据 声明如下:Python HY090-无效的字符串或缓冲区长度(0),python,sql-server,python-3.x,odbc,pyodbc,Python,Sql Server,Python 3.x,Odbc,Pyodbc,我试图通过使用带有许多insert语句的.sql文件向表中插入数据 声明如下: INSERT [dbo].[table_name] ([col1], [col2], [col3], [col4], [col5], [col6], [col7], [col8], [col9], [col10], [col11], [col12], [col13], [col14], [col15], [col16], [col17], [col18], [col19], [col20], [col21], [co
INSERT [dbo].[table_name] ([col1], [col2], [col3], [col4], [col5], [col6], [col7], [col8], [col9], [col10], [col11], [col12], [col13], [col14], [col15], [col16], [col17], [col18], [col19], [col20], [col21], [col22], [col23], [col24], [col25]) VALUES (N'01111', N'SOME RANDOM NAME', N'ABCDE', N'Times', N'ABCD', N'0#aa:', N'06', N'SM', N'123 Cerfdty', N'NULL', N'SM', N'NULL', N'NULL', N'000', N'o2:aq', N'wef0', N'000', N'xx:xx', N'xxxxx', N'ZM', NULL, NULL, NULL, NULL, NULL)
GO
每个语句单独执行,然后通过读取文件提交
但在完成大约240条insert语句后,我得到以下错误:
pyodbc.Error:('HY090','[HY090][Microsoft][ODBC驱动程序管理器]无效的字符串或缓冲区长度(0)(SQLExecDirectW)'
- Python:3
- pyodbc:4.0.17
- 操作系统:Windows 10
- DB:microsoftsqlserver
- 司机: ['SQL Server', “SQL Server本机客户端11.0”, “SQL Server的ODBC驱动程序13”, “SQL Server的ODBC驱动程序17”]
try:
with open(filename,'r') as sqlfile:
sql_query = ''
count =0
for line in sqlfile:
if 'GO' in line:
cursor.execute(sql_query)
sql_query = ''
conn.commit()
count = count +1
print(count)
elif 'PRINT' in line:
display = line.split("'")[1]
print(display)
else:
sql_query = sql_query + line
sqlfile.close()
except pyodbc.ProgrammingError as error:
print(error)
请帮我解决这个问题
try:
with open(filename,'r') as sqlfile:
sql_query = ''
count =0
for line in sqlfile:
if 'GO' in line:
cursor.execute(sql_query)
sql_query = ''
conn.commit()
count = count +1
print(count)
elif 'PRINT' in line:
display = line.split("'")[1]
print(display)
else:
sql_query = sql_query + line
sqlfile.close()
except pyodbc.ProgrammingError as error:
print(error)
pyodbc 4.0.17相当陈旧。你能试着使用pyodbc 4.0.25,看看它是否工作得更好吗?您好,Gord,我刚刚将pyodbc升级到新版本,并再次尝试运行。我也遇到了同样的问题,这个问题解决了吗?