PLSQL Language Reference-PL/SQL子程式-子程式引數-實參的位置、名稱和混合標記
0.1.1 實參的位置、名稱和混合標記
在呼叫子程式時,可以使用位置、名稱或混合標記來指定實參。
位置 |
名稱 |
混合 |
按形參宣告的順序指定實參 |
可以按任何順序指定實參 formal => actual |
以位置標記開始,對其它引數使用名稱標記 |
可以省略尾部的可選引數 |
可以省略任何可選引數 |
在位置標記中可以省略尾部的可選引數,在名稱標記中可以省略任何可選引數 |
如果按錯誤的順序指定了實參,尤其是實參為字面量,則會引起很難發現的問題 |
實參沒有錯誤的順序 |
在位置標記中,如果按錯誤的順序指定了實參,尤其是實參為字面量,則會引起很難發現的問題 |
如果形參列表改變了,則子程式呼叫必須改變,除非列表中只是增加了新的尾部可選引數。 |
只有當引數列表增加了新的引數時,子程式呼叫才需要改變。 |
對於形參列表的改變,可能需要改變位置標記 |
|
當呼叫由它人定義或維護的子程式時,建議採用這種方式 |
當呼叫有必須引數和可選引數的子程式,且必須指定少數的幾個可選引數的時候,很方便。 |
DECLARE emp_num NUMBER(6) := 120; bonus NUMBER(6) := 50;
PROCEDURE raise_salary ( emp_id NUMBER, amount NUMBER) IS BEGIN UPDATE employees SET salary = salary + amount WHERE employee_id = emp_id; END raise_salary;
BEGIN -- 等效的呼叫 raise_salary(emp_num, bonus); -- 按位置 raise_salary(amount => bonus, emp_id => emp_num); -- 按名稱 raise_salary(emp_id => emp_num, amount => bonus); -- 按名稱 raise_salary(emp_num, amount => bonus); -- 混合 END; / |
CREATE OR REPLACE FUNCTION compute_bonus ( emp_id NUMBER, bonus NUMBER ) RETURN NUMBER IS emp_sal NUMBER; BEGIN SELECT salary INTO emp_sal FROM employees WHERE employee_id = emp_id;
RETURN emp_sal + bonus; END compute_bonus; / SELECT compute_bonus(120, 50) FROM DUAL; -- 按位置 SELECT compute_bonus(bonus => 50, emp_id => 120) FROM DUAL; -- 按名稱 SELECT compute_bonus(120, bonus => 50) FROM DUAL; -- 混合 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1132818/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 鉤子裡找不到新增外掛名稱的位置
- Qt啟動子程式,子程式關閉時通知主程式,實現主程式對子程式的管理QT
- fork、父程式和子程式
- Python標準庫06 子程式Python
- layui 子彈窗獲取父頁面的引數傳參UI
- 子串位置
- golang實現子程式通訊Golang
- OpenFeign @PathVariable需註明引數名稱
- 關於CSS中的定位使用子絕父相(子類絕對位置和父類相對位置)CSS
- Spring AOP獲取攔截方法的引數名稱跟引數值Spring
- Linux socke server程式設計:父程式和子程式關係LinuxServer程式設計
- 4.3.2.2 關於CDB Root和PDB$SEED檔案的名稱和位置
- jQuery記住使用者名稱和密碼效果程式碼例項jQuery密碼
- 子程式、孤兒程式,殭屍程式, init程式
- PLSQL程式語言SQL
- MATLAB獲得子圖位置Matlab
- 小程式內引數和掃碼引數統一
- js實現電子簽名功能JS
- 電子簽名市場,CA、混合雲、SaaS三路混戰
- Python動態引數、名稱空間、函式巢狀、global和nonlocalPython函式巢狀
- 一名合格的程式設計師應該是什麼樣子程式設計師
- Python程式設計:Counter計數器-dict字典的子類Python程式設計
- 深入理解Node.js的程式與子程式Node.js
- 遊標和遞迴sql 的一些程式碼遞迴SQL
- [apue] 等待子程式的那些事兒
- HarmonyOS NEXT 實戰開發—Grid和List內拖拽交換子元件位置元件
- SQL查詢的:子查詢和多表查詢SQL
- 電子程式單-萊斯
- EV程式碼簽名證書和標準程式碼簽名證書有何不同?
- 全網最適合入門的物件導向程式設計教程:48 Python函式方法與介面-位置引數、預設引數、可變引數和關鍵字引數物件程式設計Python函式
- SpringBoot 引數別名實現Spring Boot
- 程式媛眼中的程式猿原來是這樣子的!
- 電子簽名與手寫簽名的區別,電子簽名的優勢是什麼?
- golang 防SQL隱碼攻擊 基於反射、TAG標記實現的不定引數檢查器GolangSQL反射
- 組合語言-實驗10編寫子程式組合語言
- 小程式可以顯示群名稱啦!
- 帝國cms在任意位置呼叫指定id的欄目名稱和連結
- Stata-將變數名稱替換成標籤變數
- Laravel/Lumen 記錄MySQL 和 MongoDB 產生的 SQL,定位 SQL 產生位置LaravelMySqlMongoDB