Oracle:if if else中的嵌套块

时间:2015-01-11 11:45:20

标签: sql oracle plsql

我只是想知道我不是PL / SQL的专家,所以这可能已经得到了解答但我们可以在if then else语句中有一个嵌套的pl / sql块。例如:

DECLARE
 cnt number;
<<PARENT BLOCK>>
BEGIN
    SELECT COUNT(1) INTO n_cnt_iti 
    FROM A JOIN B ON ...
    .....
    ....
    IF n_cnt_iti = 0 THEN
        flag = 0 
    ELSE
    <<CHILD BLOCK>>
        DECLARE
            ...
            BEGIN
                ...

我已经进入了这个,因为第一个查询是否进行初始验证,如果失败,我必须再次在pl / sql块内部声明变量

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。每个语句块(在begin..end之间)都可以有一个declare子句,它声明变量,甚至是游标和本地函数,它们只在该块的范围内。

但是在存储过程的顶部声明变量也没有坏处。声明它们不会花费太多的性能或记忆,所以这是个人喜好的问题。