Oracle 10g PL / SQL中的'CONTINUE'关键字

问题描述 投票:36回答:9

我正在将TSQL存储过程迁移到PL / SQL,并且遇到了问题-Oracle 10g中缺少CONTINUE关键字。

我已经阅读到Oracle 11g具有此新功能,但是不幸的是,升级不是一种选择。

10克中是否可以替代CONTINUE?我不认为将SP的逻辑重组为一种变通办法是不切实际的,因为我有一个外循环,一个IF,然后是一个嵌套IF,然后在该IF中语句块末尾的CONTINUE。 >

非常感谢任何帮助,欢呼。

我正在将TSQL存储过程迁移到PL / SQL,并且遇到了问题-Oracle 10g中缺少CONTINUE关键字。我已经读到Oracle 11g具有此新功能,但是升级是...

oracle continue
9个回答
56
投票

您可以使用goto and labels模拟继续。


10
投票

尽管有点复杂,只是伪造的,您可以通过这种方式使用异常:


6
投票

实际上,PL SQL确实可以代替CONTINUE。您要做的就是在循环中添加标签(名称):


6
投票

为了将来的搜索,他们在oracle 11g中添加了continue语句,可以像这样使用它:


5
投票

[在10g中不可用,但是在11g中是new feature


4
投票

您是否可以将IF重构为函数,并在适当的时候返回(如有必要,请提前返回)。然后,控制流将在正确的位置在循环中拾取。


2
投票

不是很优雅,但是很简单:


1
投票

在Oracle中,有一个类似的语句称为EXIT,它退出循环或函数/过程(如果没有要退出的循环)。您可以添加WHEN来检查某些条件。


0
投票

这不完全是问题的答案,但值得注意:

© www.soinside.com 2019 - 2024. All rights reserved.