我有一个 .bat 文件,它通过 ftp 下载一个已知文件夹中的文件 xyz.mdb。
此访问数据库的表名称可能每个月都不同。
我需要通过计划的作业来启动 bat 文件,然后在特定数据库中的 SQL Server 中导入 xyz.mdb(我可以删除并重新创建它)。
有什么建议么?我对ssis不太好。
我有一个 .bat 文件,它通过 ftp 下载一个已知文件夹中的文件 xyz.mdb。
此访问数据库的表名称可能每个月都不同。
我需要通过计划的作业来启动 bat 文件,然后在特定数据库中的 SQL Server 中导入 xyz.mdb(我可以删除并重新创建它)。
有什么建议么?我对ssis不太好。
代替您的 BAT 文件,使用 WinSCP 或类似文件进行 FTP 下载。您可以使用执行流程任务来调用它,并根据成功或失败来控制您的流程。成功后,添加一个 For Each Loop 容器并将其指向“已知文件夹”,将每个文件名分配给一个变量。然后在循环中,您可以添加从每个 Access DB 读取的数据流任务。
第一个棘手的部分是连接定义。您需要使用表达式来生成连接字符串。从您手动生成的文件开始,然后在表达式中重建它,用您的变量替换文件名。
第二个棘手的部分是连接堆栈。Access 数据库引擎 2010 为您提供 64 位的 OLE DB,但奇怪的是,它一次只能以一种方式工作,64 位或 32 位。这会引起很多混乱,因为即使在 64 位机器上,BIDS 也始终是 32 位的。
我已经开始使用 ODBC 驱动程序。微软已经声明 OLE DB 将在未来被弃用,而 ODBC 是要走的路(以适应云)。任何现代 Windows 操作系统都会附带 32 位的 Access ODBC 驱动程序,您可以安装 64 位的 Access Database Engine 2010 并获得 64 位 ODBC 驱动程序。