Pymssql - 插入大字符串 - DBPROCESS 已死或未启用

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

我正在尝试使用 python 的

nvarchar(max)
库将单行插入到具有
pymssql
列(比如响应)的表中。

其他列很简单 - 一个 nvarchar(10) 列、两个 nvarchar(30) 列、两个日期列和一个 bigint 列

我真的无法控制我得到的响应字符串的长度,因此它们可以是任意长度。我搜索过的所有地方都显示(例如NVARCHAR(MAX) 的最大字符数是多少?

nvarchar(max)
可以支持多达十亿个字符。但是,我正在使用的代码似乎在 1.3 亿个字符标记处中断。

代码:

import pymssql
from pathlib import Path
conn = pymssql.connect('server', 'user', 'password', 'db')
content = Path('file.txt').read_text()
print(len(content)) # 547031539
with conn.cursor() as cursor:
    cursor.execute("Insert into table_name values (%s, %s, %s, %d, %s, %s, %s)", ('2020-05-21', '2023-03-27T20:51:50.221718', '2023-03-27T19:34:02.103253', 127671, content[:133_949_006], 'New', '2020-05-22'))
conn.commit()

回溯:

---------------------------------------------------------------------------
MSSQLDatabaseException                    Traceback (most recent call last)
File src\pymssql\_pymssql.pyx:461, in pymssql._pymssql.Cursor.execute()

File src\pymssql\_mssql.pyx:1087, in pymssql._mssql.MSSQLConnection.execute_query()

File src\pymssql\_mssql.pyx:1118, in pymssql._mssql.MSSQLConnection.execute_query()

File src\pymssql\_mssql.pyx:1251, in pymssql._mssql.MSSQLConnection.format_and_run_query()

File src\pymssql\_mssql.pyx:1789, in pymssql._mssql.check_cancel_and_raise()

File src\pymssql\_mssql.pyx:1835, in pymssql._mssql.raise_MSSQLDatabaseException()

MSSQLDatabaseException: (20047, b'DB-Lib error message 20047, severity 9:\nDBPROCESS is dead or not enabled\n')

During handling of the above exception, another exception occurred:

OperationalError                          Traceback (most recent call last)
Cell In[126], line 2
      1 with conn.cursor() as cursor:
----> 2     cursor.execute(Insert into table_name values (%s, %s, %s, %d, %s, %s, %s)", ('2020-05-21', '2023-03-27T20:51:50.221718', '2023-03-27T19:34:02.103253', 127671, content[:133_949_006], 'New', '2020-05-22'))
      3 conn.commit()

File src\pymssql\_pymssql.pyx:479, in pymssql._pymssql.Cursor.execute()

OperationalError: (20047, b'DB-Lib error message 20047, severity 9:\nDBPROCESS is dead or not enabled\n')
python sql-server limit pymssql
© www.soinside.com 2019 - 2024. All rights reserved.