-- 就是一些临时性的工作,要处理一些数据,这是个例子,没测试,可能会有语法上的错误。 declare m_dwcount int ; begin m_dwcount := 0 ; for x in (select * from tab) loop dbms_output.put_line(x.name) ; m_dwcount := m_dwcount + 1 ; end loop ; dbms_output.put_line('共计' || m_dwcount || '个表(视图)对象!') ; end ;
create or replace procedure test_YH (test1 in varchar2) is v_test varchar2(50) :='test'; v_flg boolean :=true; begin <<test_name_block>> begin dbms_output.put_line(v_test); v_flg :=false; end; begin if v_flg then goto test_name_block; end if; end; end test_YH; 根据楼上的回答,自己试着写了个小例子,好像这种goto语句并不常用,在实际的开发中,也不怎么提倡使用呢。 不知道还有没有一些比较有意思的非常巧妙的小例子。希望更多的大神指教一下
declare
m_dwcount int ;
begin
m_dwcount := 0 ;
for x in (select * from tab) loop
dbms_output.put_line(x.name) ;
m_dwcount := m_dwcount + 1 ;
end loop ;
dbms_output.put_line('共计' || m_dwcount || '个表(视图)对象!') ;
end ;
is
v_test varchar2(50) :='test';
v_flg boolean :=true;
begin
<<test_name_block>>
begin
dbms_output.put_line(v_test);
v_flg :=false;
end;
begin
if v_flg then
goto test_name_block;
end if;
end;
end test_YH;
根据楼上的回答,自己试着写了个小例子,好像这种goto语句并不常用,在实际的开发中,也不怎么提倡使用呢。
不知道还有没有一些比较有意思的非常巧妙的小例子。希望更多的大神指教一下
不过有句话存在就有其合理性,所以想请教一下,有没有很有意思很巧妙的应用例子。
总有一些情况是不得不用goto 或者不得不用命名块的,想知道是什么样的情况
使用goto的话基本上可以实现不写重复的代码,最大化的复用所写的代码
他的写法更接近汇编语言,解析的效率应该也会快一点还有就是灵活,特别是程序调整,打补丁的时候,使用goto有时代码会少好多但是咋说呢,优点再多也不好用,可读性差注定他不被提倡
使用他容易出现一些意想不到的错误,一旦出错,很难找到问题原因,大部分时候只能重写