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

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 请问这种量表怎么用spss量化分析(作为中介模型的因变量
  • ¥55 AD844 howland电流源如何驱动大额负载
  • ¥15 C++ /QT 内存权限的判断函数列举
  • ¥15 深度学习GFnet理解问题
  • ¥15 单细胞小提琴堆叠图代码
  • ¥50 升级strust2版本到2.3.15.1后使用ognl3.0.6.jar windows环境中没有问题,但部署到linux环境报错
  • ¥15 vue页面,node封装接口
  • ¥15 求TMS320F280039C工程模板!
  • ¥15 delphi+fastreport实现分组补空打印问题
  • ¥15 使用python把两台mysql数据库服务器数据导出和导入