Python生成Oracle INSERT语句报ORA-00936缺失表达式错误
错误原因
对比两条INSERT语句的语法即可直接定位问题:
Oracle标准INSERT语法要求VALUES关键字后必须用小括号() 包裹待插入的值列表,而你第一条Python自动生成的语句,VALUES后错误使用了大括号{}包裹值列表,SQL解析器无法识别非法语法,因此抛出ORA-00936: 缺失表达式错误。
修复方案
- 临时修复单条语句:将第一条语句
VALUES后的开头{替换为(,末尾对应的}替换为),修改后即可正常执行。 - 彻底修复生成逻辑:调整Python生成INSERT语句的代码逻辑,拼接VALUES后的数值部分时使用小括号,而非大括号。如果使用了SQL拼接库/ORM框架,检查配置项是否存在括号类型的错误配置。
内容的提问来源于stack exchange,提问作者Alok Sharma
相关产品推荐
相关产品推荐

