程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oraclegoto語句介紹

oraclegoto語句介紹

編輯:Oracle教程

一 定義:

The Oracle PL/SQL GOTO statement is a sequential control structure available in Oracle. The GOTO statement immediately transfers program control (called "branching") unconditionally to a named statement label or block label. The statement or label name must be unique in the block.

屬於plsql控制語句,用於程序控制非條件跳至指定標簽<<???>>。不易控制和維護,慎用!

二 例子:

1、簡單GOTO 語句,判斷數字是否為質數:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DECLARE   p VARCHAR2(30);   n PLS_INTEGER := 37; -- test any integer > 2 for prime BEGIN   FOR j IN 2 .. round(sqrt(n)) LOOP     IF n MOD j = 0 THEN       -- test for prime       p := ' is not a prime number'; -- not a prime number       GOTO print_now;     END IF;   END LOOP;   p := ' is a prime number';   <<print_now>>   dbms_output.put_line(to_char(n) || p); END; /

2、使用null避免報錯:

? 1 2 3 4 5 6 7 8 9 10 11 12 DECLARE   done BOOLEAN; BEGIN   FOR i IN 1 .. 50 LOOP     IF done THEN       GOTO end_loop;     END IF;     <<end_loop>> -- not allowed unless an executable statement follows     NULL; -- add NULL statement to avoid error   END LOOP; -- raises an error without the previous NULL END; /

3、使用goto分出一個環繞塊:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -- example with GOTO statement DECLARE   v_last_name VARCHAR2(25);   v_emp_id    NUMBER(6) := 120; BEGIN   <<get_name>>   SELECT last_name   INTO v_last_name   FROM employees   WHERE employee_id = v_emp_id;   BEGIN     dbms_output.put_line(v_last_name);     v_emp_id := v_emp_id + 5;     IF v_emp_id < 120 THEN       GOTO get_name; -- branch to enclosing block     END IF;   END; END; /

----------------------

dylan presents.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved