oracle存储过程中为什么有的是只有一个begin,end而有的有多个呢?

最近学习存储过程的编写,发现有些存储过程只有一个begin,end,有些却有多个,而且如果把多个的begin,end改成一个就会报错,请问一下是怎么一回事

如果有if等复合语句,就会出现多个begin...end.

过程可以嵌套,一个begin对应一个end,你乱改能不报错吗

begin表示开始end表示结束,它们必须成对出现。
当然你可以在begin和end中嵌套begin 和end,可以嵌套很多个,这样的好处是当这段代码出错了,我可以在其后面加exception单独进行处理或者忽略错误不至于影响整个代码块的运行
,如果你去除begin和end后报错说明这个begin end后可能加了exception,这时候你应该将这个exception去掉

begin
  begin 
    --这里写你的代码;
        begin
          --在来个begin也可以写你的代码;
        end;
  end;
begin 
--再来一个,你可以在里面加 你的代码
end;
end;