每天,我在SQL Developer中查询几个表,过滤到前一天的活动,添加列到日期标记数据,然后导出到xlsx。然后我通过SQL Server导入和导出向导手动将每个文件导入MS SQL Server。需要多次点击,等待很多...
我实际上是在SQL Server中创建一个存档,我查询的应用程序每天都会覆盖数据。我不是任何数据库的DBA,我使用存档数据进行验证和研究。
让我的组织提供额外的软件很难,我一直试图通过SQL Developer,SSMS Express ed和其他标准工具来完成这项工作。
我希望通过脚本,预定任务等方式使其合理自动化。欣赏可以解决我当前情况的建议,但如果这不合理,并且有一个非常合理的替代方案,我可以回到组织请求软件/访问/协助。
您可以使用SSIS将数据直接从Oracle导入SQL Server,除非您将.xlsx文件用于其他目的。您也可以从Oracle导出到这些文件,然后在需要文件时从这些文件加载到SQL Server。对于日期戳列,可以使用SSIS GETDATE()
函数在数据流任务中添加派生列以获取时间戳,以获得相同的结果。此函数返回时间戳,如果只需要日期,则(DT_DBDATE)
函数可以将其强制转换为与此SQL Server数据类型兼容的日期数据类型。配置SSIS包后,您可以安排定期作为SQL代理作业运行。我还建议安装SSIS目录(SSISDB)并使用此源来运行包。以下链接为这些领域提供了更多信息。
您可以考虑的另一个选项(如果SQL Express支持)是使用BCP实用程序,可以从命令行运行。
BCP实用程序允许您将分隔文本文件中的数据批量复制到SQL Server表中。
如果你采用这种方法,需要考虑的事项:
(仅举几例 - 如果你想深入研究,你可能还需要查看字段和记录之间的自定义分隔符。不要忘记,逗号和换行符仍然是char类型字段中的有效字符)。
无论如何,也许它会对你有用,也许不会。当然,您可能仍然需要处理从Oracle导出数据,但它可能会减轻获取数据的痛苦。
读一读:
https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-2017