我什么时候应该嵌套 PL/SQL BEGIN...END 块?
当看起来正确时,我一直在某种程度上随意地将 BEGIN...END 块中的代码小节分组。大多数情况下,当我正在处理较长的存储过程并且在某个位置需要临时变量时,我将仅为该部分代码声明它。当我想要识别和处理特定代码段引发的异常时,我也会这样做。
还有其他原因为什么应该在过程、函数或另一个较大的 PL/SQL 块中嵌套块吗?
I've been somewhat haphazardly grouping subsections of code in BEGIN...END blocks when it seems right. Mostly when I'm working on a longer stored procedure and there's a need for a temporary variable in one spot I'll declare it just for that portion of the code. I also do this when I want to identify and handle exceptions thrown for a specific piece of code.
Any other reasons why one should nest blocks within a procedure, function or another larger block of PL/SQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当你想像这样在本地处理异常时:
在这个例子中,异常被处理,然后我们继续处理下一个员工。
另一个用途是声明具有有限范围的局部变量,如下所示:
请注意,想要这样做通常表明您的程序太大并且应该分解:
When you want to handle exceptions locally like this:
In this example, the exception is handled and then we carry on and process the next employee.
Another use is to declare local variables that have limited scope like this:
Mind you, wanting to do this is often a sign that your program is too big and should be broken up:
当我想要创建特定于仅存在于块中的数据的过程时,我倾向于嵌套块。这是一个人为的示例:
当然,通常没有必要,但是当可以从多个位置调用过程时,它确实非常方便。
I tend to nest blocks when I want to create procedures that are specific to data that only exists within the block. Here is a contrived example:
Granted, it's not usually necessary, but it has come in really handy when a procedure can be called from many locations.
具有嵌套 BEGIN/END 块的原因之一是能够处理代码的特定本地部分的异常,并且在处理异常时可能继续处理。
One reason to have nested BEGIN/END blocks is to be able to handle exceptions for a specific local section of the code and potentially continue processing if the exception is processed.