FUNCTION(函数方法):
作用:
用于返回特定的数据(数据处理),关注点在于返回的结果。
格式:
CREATEORREPLACEFUNCTION函数名(参数 类型)
RETURN类型
IS名称 类型
BEGIN函数主体
EXCEPTION
END函数名;
关键字:
RETRUN : 定义函数返回的类型;
IS :定义变量,可用于赋值;
BEGIN :函数方法体,结束通过return()返回结果;
EXCEPTION :异常处理(可省略);
END :函数结束符。
示例:
CREATEORREPLACEFUNCTIONget_employee_salary(empoyee_idNUMBER)
RETURNNUMBER
IS
salaryNUMBER;
BEGIN
SELECTe.salary
INTOsalary
FROMemployees e
WHEREe.employee_id=empoyee_id;
RETURN(salary);
EXCEPTION
WHENno_data_foundTHEN
RETURN(-1);
WHENOTHERSTHEN
RETURN(-2);
ENDget_employee_salary;
测试:
方式一: 鼠标右击方法名,在出现的菜单中点击test,会出现Test Window窗口,且窗口下方有方法参数的输入框(Variable),输入对应参数后,按f8即执行测试,并返回测试结果;
方式二:在SQL Window窗口,编写sql语句直接调用function。
方法体中可能用到的语句:
1. 条件判断:
IF条件
ELSE
END IF;
2. 循环遍历:
FOR 变量名IN(SELECT语句)
LOOP RESULT := 变量名.对应字段;
END LOOP;
2. 将查询结果赋值给变量:
SELECT 字段INTO 变量名FROM 表名where 条件
PROCEDURE(存储过程):
作用:
用作完成特定功能的sql语句,关注点在于过程中的处理。
格式:
CREATEORREPLACEPROCEDURE名称(参数名称in/out类型)
BEGIN程序体
EXCEPTION
END 名称;
关键字:
输入参数使用in关键字标识
输出参数使用out参数表示
( Procedure的参数模式:
IN: 默认模式.在调用Procedure的时候,Procedure的实参的值被传递到该Procedure,在Procedure的内部,Procedure的形参是只读的:
OUT: 在调用Procedure时,任何的Procedure的实参都将被忽略,在Procedure的内部,形参是只可写的:
IN OUT: IN与OUT的组合.在调用Procedure的时候,实参的值可以被传递给该Procedure;在其内部,形参也可以被读出也可以