将MS SQL脚本转换为Mysql和Oracle

use*_*743 6 mysql sql sql-server oracle

我开发的其中一个应用程序在本地安装在客户的站点上.这意味着我们必须支持MySQL,MSSQL和Oracle,因为并非所有客户都使用相同的数据库引擎.

我正在为应用程序编写补丁,其中一部分涉及执行5000行sql脚本来修改数据库.该脚本是使用MSSQL语法编写的,但是我想知道是否有一个应用程序可以自动将MSSQL语法转换为Oracle和/或MySQL的语法,以免我不必手动执行它.

Qua*_*noi 0

我正在为该应用程序编写一个补丁,其中一部分涉及执行5000一行 sql 脚本来对数据库进行修改。该脚本是使用MSSQL语法编写的,但是我想知道是否有一个应用程序可以自动将MSSQL语法转换为语法Oracle和/或MySQL使我不必手动执行此操作。

这几乎不可能。

所有这些系统支持的公共子集SQL相当少。

由于5000您的脚本中有代码行,因此很可能它不属于此子集。

最糟糕的是,它通常不仅是语法差异,而且是主要的概念差异。

  • Oracle例如,支持允许MERGE在单个查询中插入、删除和更新的语句。

    既不SQL Server 2005也不MySQL支持。

  • MySQL支持一次从多个表中删除:在Oracle或中不可用SQL Server

  • SQL ServerOracle和不同MySQL,可以更新CTE使用分析函数的 。