我制作了一个连接到 Mssql 数据库并在那里插入一些内容的 python 脚本。
问题出在这一行:
cursor.execute("insert into TREND_DATA (TREND_ID, TREND_DATE, TREND_VALUE) values ((select TREND_ID from TRENDS where TREND_NAME = ?), ?, ?)", name, date, trend_value)
Run Code Online (Sandbox Code Playgroud)
在此行之后我收到此错误:
cursor.execute("insert into TREND_DATA (TREND_ID, TREND_DATE, TREND_VALUE) values ((select TREND_ID from TRENDS where TREND_NAME = ?), ?, ?)", name, date, trend_value)
pyodbc.DataError: ('22018', '[22018] [Microsoft][ODBC SQL Server Driver]Invalid character value for cast specification (0) (SQLExecDirectW)')
Run Code Online (Sandbox Code Playgroud)
我尝试用“abc”代替“名称”,但出现了相同的错误”
cursor.execute("insert into TREND_DATA (TREND_ID, TREND_DATE, TREND_VALUE) values ((select TREND_ID from TRENDS where TREND_NAME = ?), ?, ?)", 'abc', date, trend_value)
Run Code Online (Sandbox Code Playgroud)
然而,这条线有效,我在数据库中得到了新行:
cursor.execute("insert into TREND_DATA (TREND_ID, TREND_DATE, TREND_VALUE) values ((select TREND_ID from TRENDS where TREND_NAME = 'abc'), ?, ?)", date, trend_value)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?