在 Oracle PL/SQL 與 SQL 呼叫內建/自訂函數時,`=>` 為 **具名參數關聯 (Named Parameter Association)** 語法,允許**按參數名稱而非位置**傳遞引數,極大提升可讀性與彈性。
| 方式 | 語法 | 特點 |
|---|---|---|
| 位置關聯 (Positional) | func(arg1, arg2, arg3) | 須嚴格依宣告順序,略過參數需佔位 NULL |
| 具名關聯 (Named) | func(p_name => 'value', p_id => 10) | 順序任意、可跳過有預設值參數、自文檔化 |
-- 該函數簽章 (簡化):
-- MD5(input_string VARCHAR2, input_raw RAW, output_raw OUT RAW)
-- 僅指定 input_string,其他參數使用預設值
SELECT DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => 'abc') FROM dual;
含義: 將實參 'abc' 繫結至形式參數 input_string,其餘參數 (input_raw, output_raw) 採用預設值或自動處理。
CREATE_PROCEDURE(p_a IN NUMBER DEFAULT 1, p_b IN VARCHAR2 DEFAULT 'X', p_c IN DATE DEFAULT SYSDATE) 呼叫時僅需 p_c => SYSDATE-1。UTL_MAIL.SEND(sender => 'a@b.com', recipients => 'c@d.com', subject => 'Test', message => 'Body') 一目瞭然。MD5(password),登入時比對 MD5(input_password)。DBMS_CRYPTO.HASH ) + Salt。