Oracle PL/SQL是Oracle數據庫中的一種存儲過程式語言,PL/SQL可以用來編寫數據庫操作的應用程序,可以通過存儲過程、觸發器、函數等方式實現業務邏輯。下面將介紹PL/SQL中幾個常用的語法和技巧。
1.條件判斷語句if-else
DECLARE a NUMBER := 10; BEGIN IF a = 10 THEN dbms_output.put_line('a is 10'); ELSE dbms_output.put_line('a is not 10'); END IF; END;
上述代碼會輸出a is 10,如果把a賦值為其他數就會輸出a is not 10。
2.循環語句for loop
BEGIN FOR i IN 1..3 LOOP dbms_output.put_line('i is ' || i); END LOOP; END;
上述代碼會輸出1 2 3,因為i是在1到3之間循環的,每次循環都會輸出i的值。
3.游標語句cursor
DECLARE CURSOR emp_cur IS SELECT employee_id, last_name, salary FROM employees; emp_rec emp_cur%ROWTYPE; BEGIN OPEN emp_cur; LOOP FETCH emp_cur INTO emp_rec; EXIT WHEN emp_cur%NOTFOUND; dbms_output.put_line(emp_rec.employee_id || ' ' || emp_rec.last_name || ' ' || emp_rec.salary); END LOOP; CLOSE emp_cur; END;
上述代碼會輸出所有員工的工號、姓名和薪水。
4.異常處理語句exception
BEGIN INSERT INTO employees VALUES (9999, 'WU', 'JUNYONG', 'wu@junyong.com', '09-SEP-1990', 'IT_PROG', 6000, NULL, 100, NULL, NULL); EXCEPTION WHEN DUP_VAL_ON_INDEX THEN dbms_output.put_line('員工已存在!'); WHEN TOO_MANY_ROWS THEN dbms_output.put_line('插入多于一行,異常!'); END;
上述代碼會檢查員工是否已經存在,如果存在就輸出員工已存在!如果插入多于一行就會輸出插入多于一行,異常!
除了以上常用的語法和技巧,PL/SQL還有很多高級用法,例如嵌套表、動態SQL、PL/SQL表、游標和參數數組等。這些用法在一些復雜的業務場景中可以提高代碼編寫的效率和代碼整體性。如果想要學習更多PL/SQL知識,可以參考Oracle官方文檔或者其他相關書籍。