【发布时间】:2016-06-22 09:18:34
【问题描述】:
在 PL-SQL 中,有一些新奇的概念,比如表函数、对象,以及可能我还没有发现的其他概念。
但话又说回来,还有简单的代码生成(动态 pl-sql),您可以“立即执行”。
这些有助于代码重用。
据我所知,表函数和对象可以帮助创建模块化代码,但仍然不足以删除整个代码(也许我没有使用其中最好的;我不得不承认我的对象只包含数据暂时没有逻辑)。
另一方面,代码生成要简单得多,并且可以更多地减少重复代码。但是很难理解代码生成逻辑背后的实际业务是什么。
我想要模块化且不重复的代码。我应该坚持使用纯代码生成吗?各有什么优缺点?
【问题讨论】:
-
“代码生成”是指动态 PL/SQL 吗? (您提到“立即执行[ly]”,这表明您应该这样做。)动态 PL/SQL 有它的位置,但不应该是您理所当然地使用的东西,只有当静态 PL/SQL 代码由于某种原因无法使用时,
-
是的,动态plsql。我想要的内容不符合任何建议的限制(“在编译时文本未知的 SQL”或“不支持作为静态 SQL 的 SQL”);我想要的似乎更容易。但是,这是一个陷阱吗?我如何不复制粘贴带有大量连接的巨大选择和一些仅在此处和那里更改表名和列名的内部选择?
-
Dynamic SQL 有它的位置,但我倾向于回避它,因为 a)它更难调试,b)它更难维护和 c)SQL 语法的错误只在运行时发现-时间。就像任何东西一样,它是一个工具,它有它的位置,但就像托尼上面所说的那样,你应该仔细考虑是否真的需要使用它。也许您可以使用一组封装了您所追求的逻辑的视图,或者您确实需要动态 sql;您的问题中没有足够的信息让我们说。
标签: plsql