当前位置: 首页 > 知识库问答 >
问题:

传入Python列表时变量名/编号非法

毛弘博
2023-03-14

我试图通过Python在列表上运行SQL语句。通过传递列表,在本例中为日期。因为我想运行多个SELECT SQL查询并返回它们。我已经通过传递整数来测试了这一点,但是当尝试传递日期时,我得到了ORA-01036错误。变量名/编号非法。我正在使用Oracle数据库

cursor = connection.cursor()
date = ["'01-DEC-21'", "'02-DEC-21'"]

sql = "select * from table1 where datestamp = :date"

for item in date:
    cursor.execute(sql,id=item)
    res=cursor.fetchall()
    print(res)

有什么建议可以让它运行吗?

共有1个答案

程景胜
2023-03-14

不能命名绑定变量date,它是非法名称。此外,cursor.execute中的命名变量应与绑定变量名称匹配。尝试以下方法:

sql = "select * from table1 where datestamp = :date_input"

for item in date:
  cursor.execute(sql,date_input=item)
  res=cursor.fetchall()
  print(res)
 类似资料:
  • 我有下面的insert查询 每次我尝试运行此查询时,都会出现此错误 我做了一些研究,显然这意味着其中一个变量不在SQL语句中。对我来说不是这样,我检查了语句、数据库(oracle)表和所有绑定变量,它们都匹配。 错误上的行号将表明它是$driveable变量。我做了一个检查,这是被发送到页面罚款。 不知道还有什么地方可以看,所以任何帮助都会很好。

  • 你好,美丽的人们。 我正在尝试使用连接到OracleDB的node.js创建RESTAPI,但我正在竭尽全力让这些愚蠢的绑定变量正常工作。 这是我的代码: 由于某种原因,我得到了错误 如果我删除bind变量,分配一个静态值,并删除sql语句后的“req.params.ScheMA”,并将括号留空,它就可以工作。 我知道我拉绑定变量的方式一定很简单,但是我把头发拔出来了。 请帮帮我欧比万克诺比。。。

  • 请帮帮我 获取日期范围的数据时出错 错误 ora-01036非法变量名称/编号

  • 我想更新gridview中的行的单元格。但我得到的错误是 ORA-01036:非法变量名称/编号 在 下面是我的代码:-

  • 为什么在Oracle DB中出现此错误? cx_Oracle。ORA-01036:非法变量名称/数字

  • 我已经创建了一个API,希望将数据插入oracle数据库。但我收到一条错误消息“error:ORA-01036:非法变量名/编号”。我不知道我犯了什么错误。希望能帮我解决这个问题。先谢谢你。 [错误:ORA-01036:非法变量名/编号]{errorNum:1036,偏移量:0}