将t-sql(SQL Server)存储过程转换为psql(postgresql)的工具

时间:2011-08-05 07:32:09

标签: tsql postgresql automation

在从SQL Server数据库迁移到postgresql时,是否有人可以建议使用工具或共享代码来帮助我将数据库中的大量t-sql存储过程转换为postgresql?

==已编辑== 这里有一些明确的目标:

  1. 将所有sps转换为postgre sql而不考虑性能/调优等,只关注语法是正确的,查询返回正确的数据
  2. 语言转换和转换相关指南非常有用。我看到几个旧的vbscript示例(大多数不适合我)并且可以尝试将它们转换为T4模板。

    我很惊讶没有人真的需要这种转换!我仍然没有合适的工具。

    提前致谢。

3 个答案:

答案 0 :(得分:2)

翻译语言很难。你需要解析原文(包含所有奇怪的语法和瑕疵,它允许超出文档所说的内容),确定名称的含义,发现语义,并转换为目标语言而不会丢失细微的细节。

如果您找到了现成的解决方案,我会感到惊讶。问题的一部分是有大量的N源语言(方言更糟糕),以及大量的目标M,需要一个NxM翻译库。如果你等了几个月,N和M都会动起来。一个希望是将N语言转换为一种通用的通用核心语言,并将其转换为M个目标,现在只需要N + M ......但是没有人找到真正的通用语言,如果你等了几个月,N和M无论如何都要移动。

可以考虑为该任务构建(或让别人构建)特定的翻译器;这通常是不经济的,至少如果你想要它是可靠的,因为很多翻译机制(解析,名称解析,模式匹配/翻译......)往往会从头开始重建。

如果你小心,可以通过构建(大量)共享机器来分摊翻译基础设施的成本。一旦你这样做,建立一个翻译更容易(仍然不容易),经济学对个别案例更有意义。您可以在What kinds of patterns could I enforce on the code to make it easier to translate to another programming language?

了解有关此方法的更多信息

答案 1 :(得分:0)

您是否看过此页:

Convert from other databases to PostgreSQL

答案 2 :(得分:0)

我确信每个SP都需要由开发人员转换。 Ira Baxter说(绝对正确)关于语言,但我想说平台差异。例如,如何将使用临时表转换为不同平台? 如何处理性能调优的查询?性能调优使用RDBMS的特定功能,并且无法自动转换此调整。等等...