Some notes of Learning Oralce.
存储过程
创建和删除存储过程
格式:
1 | CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)] |
删除:
1 | drop procedure [存储过程名]; |
调用存储过程
方法一
1
2EXECUTE 模式名.存储过程名[(参数...)];
-- (适用于命今行窗口及sql窗口)方法二:
1
2
3
4BEGIN
模式名.存储过程名[(参数...)];
END;
-- (适用于sql窗口)
例:
编写显示雇员信息的存储过程 EMP_LIST ,并引用 EMP_COUNT 存储过程(无参存储过程)。
1 | CREATE OR REPLACE PROCEDURE EMP_LIST |
调用:
1 | begin |
参数传递
- 输入参数:
1
[参数名] IN [数据类型] DEFAULT [值];
例:
编写给雇员增加工资的存储过程 CHANGE_SALARY,通过 IN 类型的参数传递要增加工资的雇员编号和增加的工资额。
1 | CREATE OR REPLACE PROCEDURE CHANGE_SALARY(P_EMPNO IN NUMBER DEFAULT 7788,P_RAISE NUMBER DEFAULT 10) |
调用:
1 | begin |
- 输出参数:
1
[参数名] OUT [数据类型] DEFAULT [值];
例:
统计雇员的人数
1 | REATE OR REPLACE PROCEDURE EMP_COUNT(P_TOTAL OUT NUMBER) |
调用:
1 | DECLARE |
- 输入输出参数:
1
[参数名] IN OUT [数据类型] DEFAULT [值];
例:
使用IN OUT类型的参数,给电话号码增加区码。
1 | CREATE OR REPLACE PROCEDURE ADD_REGION(P_HPONE_NUM IN OUT VARCHAR2) |
调用:
1 | DECLARE |