使用可重复使用的代码编写程序的建议做法是什么?

时间:2011-07-28 06:06:56

标签: performance oracle design-patterns function code-reuse

我想与一些经验丰富的Oracle开发人员讨论后端开发的最佳实践。

我编写了许多以XML格式打印数据并由HTTP服务使用的软件包。

为此,我遍历游标并使用htp.p打印数据。

e.g。

for i in c_my_cursor loop
  htp.p('<element>', i.data_field, '</element>');
end loop;

现在我听说游标对性能有害(这是真的吗?)。此外,在不同的软件包中使用了类似的游标,从维护的角度来看,我觉得切换到函数会更好。

但是我可以从函数中返回什么?我不认为游标会起作用。你们有什么用?

1 个答案:

答案 0 :(得分:10)

游标本身并不坏。 坏的是处理Row By Agonizing Row,而不是使用set处理。 SQL就是The Joy Of Sets。游标的问题在于PL / SQL开发人员经常自动获取它们;当一个直接的SQL语句更有效时,这经常导致我们沿着RBAR路线走下去。

功能并不比程序更有效。根据您是在做某事还是检索某些内容来选择功能或程序。

在您的情况下,我会考虑Oracle的内置XML功能是否适用于您的特定情况。这部分取决于您使用的Oracle版本,但几乎任何版本,因为8i将与您发布的特定示例一起使用。 Find out more