Sql 使存储过程通用

Sql 使存储过程通用,sql,stored-procedures,Sql,Stored Procedures,我必须使用SQL编写的存储过程具有通用性,以便它们可以在不同版本的SQL中使用(如果可能的话,也可以使用MySQL)。我认为如果脚本是按照ANSI标准编写的,就可以做到这一点。但我必须转换大型程序。没有用于直接转换的工具。是否有任何一组规则可用于执行此转换 我找到了一个验证脚本的工具@ 但这将非常耗时,因为我有大型SP,我认为通过使用一些规则手册,这项任务可以在更短的时间内完成 没有通用存储过程语言 如果需要跨数据库平台工作,最好在代码中实现SP功能,使用ANSI标准SQL进行数据库访问 没有S

我必须使用SQL编写的存储过程具有通用性,以便它们可以在不同版本的SQL中使用(如果可能的话,也可以使用MySQL)。我认为如果脚本是按照ANSI标准编写的,就可以做到这一点。但我必须转换大型程序。没有用于直接转换的工具。是否有任何一组规则可用于执行此转换

我找到了一个验证脚本的工具@


但这将非常耗时,因为我有大型SP,我认为通过使用一些规则手册,这项任务可以在更短的时间内完成

没有通用存储过程语言


如果需要跨数据库平台工作,最好在代码中实现SP功能,使用ANSI标准SQL进行数据库访问

没有SQL存储过程这样的东西。SQL是一种由许多RDBMS实现的语言(略有不同)。然而,每个RDBMS都有自己的过程变量,SQL Server的T-SQL,Oracle的PL/SQL等等。过程代码没有ANSI标准,所以你完全不走运。任何自动转换它们的东西几乎肯定都是垃圾,因为每个RDBMS的实现方式完全不同。在T-SQL中使用临时表的地方,通常在PL/SQL中应该完全避免使用临时表。最省时(也是最高效)的方法是自己转换临时表,或者请人为您转换临时表。您将无法编写通用SQL存储过程。存储过程需要的控制结构(IF、WHILE)不是标准SQL的一部分,还需要访问记录的插入前和插入后、更新后和删除后版本的机制,这些也是非标准的。