1. 程式人生 > >順序語句:GOTO和NULL語句

順序語句:GOTO和NULL語句

意思 emp 提高 where output into IE else style

一 標號和GOTO

1 語法:

PL/SQL中GOTO語句是無條件跳轉到指定的標號去的意思。語法如下:

GOTO label;
......
<<label>> /*標號是用<< >>括起來的標識符 */

註意,在以下地方使用是不合法的,編譯時會出錯誤。

— 跳轉到非執行語句前面。

— 跳轉到子塊中。

— 跳轉到循環語句中。

— 跳轉到條件語句中。

— 從異常處理部分跳轉到執行。

— 從條件語句的一部分跳轉到另一部分。

2 例子:

DECLARE
V_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(‘V_counter的當前值為:‘||V_counter);
V_counter := v_counter + 1;
IF v_counter > 10 THEN
GOTO labelOffLOOP;


END IF;
END LOOP;
<<labelOffLOOP>>
DBMS_OUTPUT.PUT_LINE(‘V_counter的當前值為:‘||V_counter);
END;

DECLARE
v_i NUMBER := 0;
v_s NUMBER := 0;
BEGIN
<<label_1>>
v_i := v_i + 1;
IF v_i <= 1000 THEN
v_s := v_s + v_i;
GOTO label_1;
END IF;
DBMS_OUTPUT.PUT_LINE(v_s);
END;

2 NULL語句

在PL/SQL 程序中,NULL語句是一個可執行語句,可以用 null 語句來說明“不用做任何事情”的意思,相當於一個占位符或不執行任何操作的空語句,可以使某些語句變得有意義,提高程序的可讀性,保證其他語句結構的完整性和正確性。如:

DECLARE
...
BEGIN
...
IF v_num IS NULL THEN
GOTO labelPrint;
END IF;

<<labelPrint>>
NULL; --不需要處理任何數據。
END;

DECLARE
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
v_salary employees.salary%TYPE;
v_sal_raise NUMBER(3,2);
BEGIN
v_emp_id := &emp_id;
SELECT first_name, salary INTO v_first_name, v_salary
FROM employees WHERE employee_id = v_emp_id;
IF v_salary <= 3000 THEN
v_sal_raise := .10;
DBMS_OUTPUT.PUT_LINE(v_first_name||‘的工資是‘||v_salary
||‘、工資漲幅是‘||v_sal_raise);
ELSE


NULL;
END IF;
END;

順序語句:GOTO和NULL語句