首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle PL/SQL 入門基礎:程式結構、資料型態與控制流程

     編輯:Oracle 資料庫相關知識

PL/SQL 產生背景

SQL 屬於第四代語言 (4GL),非程序化、只描述「做什麼」不關心「怎麼做」。面對複雜業務流程,需第三代程序語言 (3GL) 處理細節。PL/SQL 為 Oracle 專屬程序化擴充,結合 SQL 資料操作與程序控制能力,實現複雜業務邏輯。

PL/SQL 程式結構:區塊

基本單位為 Block (區塊),包含三段:

/* 宣告區:DECLARE 開頭 */
DECLARE
    v_id   INTEGER;
    v_name VARCHAR2(20);
    CURSOR c_emp IS SELECT * FROM employee WHERE emp_id = 3;

/* 執行區:BEGIN 開頭 (必要) */
BEGIN
    OPEN c_emp;
    LOOP
        FETCH c_emp INTO v_id, v_name;
        EXIT WHEN c_emp%NOTFOUND;
    END LOOP;
    CLOSE c_emp;
    DBMS_OUTPUT.PUT_LINE(v_name);

/* 例外處理區:EXCEPTION 開頭 (可選) */
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE('無資料');
END;
  • 宣告區:定義變數、游標、型別、例外;
  • 執行區:業務邏輯,必須存在;
  • 例外區:錯誤處理,可選。

變數宣告與指派

PL/SQL 資料型態與 Oracle 資料庫欄位型態一一對應:

  • NUMBER[(precision, scale)]:整數/浮點數,範圍 1E-130 ~ 10E125;
  • VARCHAR2[(size)]:變長字串,最大 32767 位元組 (PL/SQL) 或 4000 (SQL)。

宣告語法:變數名 型態; (右向左閱讀)

v_id NUMBER;
v_name VARCHAR2(20);

指派運算子::= (非 =)

v_id := 5;
v_name := 'Tom';

常用控制結構

  • 條件:IF ... THEN ... ELSIF ... ELSE ... END IF;
  • 迴圈:LOOP ... EXIT WHEN ... END LOOP;、WHILE ... LOOP ... END LOOP;、FOR i IN 1..10 LOOP ... END LOOP;
  • 游標:OPEN/FETCH/CLOSE 或 FOR rec IN cursor LOOP ... END LOOP; (隱式游標)。

內建函數與套件

常用:DBMS_OUTPUT (除錯輸出)、UTL_FILE (檔案操作)、DBMS_SQL (動態 SQL)、DBMS_JOB (排程)。

結語

掌握區塊結構、變數宣告、控制流程與游標操作,即具備 PL/SQL 開發基礎。下篇將透過實戰案例深化應用。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁
  • 尾頁
  • 共3頁
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved