如何使用Python自动将指定文件夹文件导入Toad for Oracle?
自动导入CSV至Toad for Oracle的落地方案
1. 先搞定Toad的自动化导入模板
先手动在Toad里完成一次CSV导入配置:匹配好目标表的列映射、CSV分隔符、编码等,然后将这个配置导出为.tss格式的脚本文件——这是Toad支持的自动化执行脚本。
2. 补全Python脚本的执行逻辑
结合你已有的最新文件获取代码,添加调用Toad命令行的逻辑,实现从取文件到导入的全流程:
import glob import os import subprocess # 获取最新CSV文件(注意转义路径用r前缀) list_of_files = glob.glob(r'C:\Users\USER\Desktop\belajar\ProjectDAS\downloaded_files\*.csv') newest_file = max(list_of_files, key=os.path.getctime, default=None) if newest_file: # 替换为你的Toad实际安装路径 toad_exe_path = r'C:\Program Files\Quest Software\Toad for Oracle 16.x\Toad.exe' # 替换为你导出的.tss脚本路径 import_script_path = r'C:\your\path\to\import_config.tss' # 替换为你在Toad里保存的Oracle连接名 oracle_conn_name = "YourOracleConn" # 构造Toad命令行参数:执行脚本、指定数据源、传递CSV路径变量 cmd = f'"{toad_exe_path}" /c "{import_script_path}" /s "{oracle_conn_name}" /var:CSV_FILE_PATH="{newest_file}"' # 执行导入命令 subprocess.run(cmd, shell=True, check=True) else: print("未找到可导入的CSV文件")
3. 配置定期执行
用Windows任务计划程序实现定时触发:
- 创建基本任务,设置触发周期(比如每日固定时段)
- 动作选择「启动程序」,程序路径选你的Python解释器(比如
python.exe),添加参数为你这个脚本的完整绝对路径 - 注意给执行任务的用户分配Toad和Oracle的访问权限
4. 处理全量数据的重复问题
因为你的CSV是期初到当前的全量数据,导入前要处理重复:
- 全量覆盖:在Toad的
.tss脚本开头添加TRUNCATE TABLE your_target_table;语句 - 增量更新:给CSV加唯一标识列(比如时间戳、业务ID),在导入脚本里用
MERGE语句匹配数据,存在则更新、不存在则插入
内容的提问来源于stack exchange,提问作者Diyouva C. Novith
相关产品推荐
相关产品推荐

