我想使用ANSI标准语法。当前代码使用Oracle专有的TRUNC。 ANSI标准EXTRACT一次只能获得一(1)个元素。以下代码是在ANSI标准语法中模拟TRUNC的唯一方法吗?还有更好的方法吗?
instance33.txt
答案 0 :(得分:2)
评论太长了。
如果您担心代码的可移植性,那么您会有很多顾虑。您需要开始创建用户定义的函数来处理基本任务,然后在要移植到的任何数据库中定义这些函数。令人高兴的是,在大多数情况下,这些功能很容易设计。
更难的部分是确保您的代码库仅使用这些功能,而不是语言的其他功能。
无论如何,开发与数据库无关的SQL代码可能不是一个有价值的目标。您可能希望在应用程序和数据库之间开发正式的API,然后有意识地在每个数据库中重新实现此API - 以及测试套件。
毕竟,像select 1/2
这样简单的东西会在不同的数据库中返回截然不同的结果(0,0.5,并且会出现语法错误)。