首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 具名參數標記 (=>) 在函數呼叫中的含義與用法

     編輯:Oracle 教學

Oracle 具名參數標記 (=>) 在函數呼叫中的含義與用法

在 Oracle PL/SQL 與 SQL 呼叫內建/自訂函數時,`=>` 為 **具名參數關聯 (Named Parameter Association)** 語法,允許**按參數名稱而非位置**傳遞引數,極大提升可讀性與彈性。

兩種參數傳遞方式對比

方式語法特點
位置關聯 (Positional)func(arg1, arg2, arg3)須嚴格依宣告順序,略過參數需佔位 NULL
具名關聯 (Named)func(p_name => 'value', p_id => 10)順序任意、可跳過有預設值參數、自文檔化

實戰範例:DBMS_OBFUSCATION_TOOLKIT.MD5

-- 該函數簽章 (簡化):
-- 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) 採用預設值或自動處理。

優勢場景

  1. 參數眾多且多有預設值:CREATE_PROCEDURE(p_a IN NUMBER DEFAULT 1, p_b IN VARCHAR2 DEFAULT 'X', p_c IN DATE DEFAULT SYSDATE) 呼叫時僅需 p_c => SYSDATE-1。
  2. API 穩定性:新增中間參數不影響現有呼叫端代碼。
  3. 可讀性:UTL_MAIL.SEND(sender => 'a@b.com', recipients => 'c@d.com', subject => 'Test', message => 'Body') 一目瞭然。

MD5 雜湊補充

  • MD5 為**單向雜湊 (不可逆)**,常用於密碼存儲驗證:註冊時存 MD5(password),登入時比對 MD5(input_password)。
  • **碰撞風險極低但存在**,高安全場景建議改用 SHA-256 ( DBMS_CRYPTO.HASH ) + Salt。
  • 跨語言驗證需統一 **字元編碼 (UTF-8/AL32UTF8)**,否則雜湊值不一致。

語法提醒

  • 具名關聯可混合位置關聯,**但位置關聯必須在具名關聯之前** (PL/SQL 規則)。
  • SQL 語句中呼叫函數同樣支援具名關聯 (11g+)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved