m0_37908418 2022-04-04 16:44 采纳率: 70.2%
浏览 182
已结题

python 执行oracle sql 报错 ORA-00900: invalid SQL statement

用python 连接oracle 正常,因为一段sql比较复杂 生成sql 格式文件 然后用python 执行sql 但是报错

sql=r'C:\Temp\frs.sql'

res=cur.execute(sql)
conn.commit()

报错:
res=cur.execute(sql)

DatabaseError: ORA-00900: invalid SQL statement
因为sql里有以下语句 不知是否这个原因

img

where
date = '20200502'
and datetime='20200502 11:50:00'

怎样解决

  • 写回答

5条回答 默认 最新

  • CSDN专家-showbo 2023-03-09 15:47
    关注

    来源:https://blog.csdn.net/weixin_39855998/article/details/129014190

    
    # _*_ coding:utf-8 _*_
    import os
    '''
    背景:plsql工具连接oracle数据库不支持批量导入sql脚本,用惯navicat的朋友不太习惯。
    操作:
    1.第一步登录PLSQL
    2.选择File>New>Command Windows(命令窗口)
    3.输入@符号,之后敲击回车键。从本地选择执行的SQL脚本。
    4.想批量执行sql脚本,可以新建一个文本,使用@拼接本地路径。
    5.本脚本执行后,直接执行:@E:\\plsql-python-sql\\finish_sql.txt即可
    时间:20230213
    '''
     
    class Oraclesql:
        def __init__(self, path):
            self.path = path
     
        def searchfile(self):
            # 检索目标目录文件
            list1 = []
            file = os.listdir(self.path)
            for i in file:
                if str(i.split(".")[-1]) == 'sql':
                    abs = os.path.join(self.path, i)
                    list1.append("@" + abs + ";")
            return list1
     
        def shuchu(self):
            # 输出为当前目录下的文件
            with open(os.path.join(self.path, "E:\\plsql-python-sql\\finish_sql.txt"), "w+", encoding="utf-8") as file1:
                for a in self.searchfile():
                    file1.write(a + '\n')
     
     
    if __name__ == "__main__":
        # sql脚本存放位置
        a = Oraclesql(r"E:\plsql-python-sql")
        a.shuchu()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 4月4日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装
  • ¥40 复杂的限制性的商函数处理