我想与一些更有经验的 Oracle 开发人员一起了解后端开发的最佳实践。
我编写了很多以 XML 格式打印数据并被 HTTP 服务使用的包。
为此,我遍历游标并使用 htp.p 打印数据。
例如
for i in c_my_cursor loop
htp.p('<element>', i.data_field, '</element>');
end loop;
现在我听说游标对性能不利(这是真的吗?)。而且,在不同的包中使用了类似的游标,我觉得从维护的角度来看,切换到功能会更好。
但是我可以从函数返回什么?我不认为游标会起作用。各位大佬用什么?
最佳答案
游标本身并不坏。不好的是处理 Row By Agonizing Row,而不是使用 set 处理。 SQL 是关于集合的乐趣。游标的问题在于 PL/SQL 开发人员通常会自动获取它们;这通常会导致我们走上 RBAR 路线,而直接的 SQL 语句会更有效率。
函数并不比过程更有效率。根据您是在做某事还是在检索某事来选择函数或过程。
在您的情况下,我会考虑 Oracle 的内置 XML 功能是否适用于您的特定情况。这在一定程度上取决于您使用的是哪个版本的 Oracle,但几乎所有自 8i 以来的版本都适用于您发布的特定示例。 Find out more .
关于performance - 使用可重用代码编写过程的推荐做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6854712/