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

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日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同