我只是想知道我不是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块内部声明变量
答案 0 :(得分:2)
是的,你可以这样做。每个语句块(在begin..end之间)都可以有一个declare子句,它声明变量,甚至是游标和本地函数,它们只在该块的范围内。
但是在存储过程的顶部声明变量也没有坏处。声明它们不会花费太多的性能或记忆,所以这是个人喜好的问题。