oracle 存储函数

CREATE OR REPLACE FUNCTION CALC_SALARY(p_empno IN NUMBER, p_sal IN NUMBER, p_overtime IN NUMBER) RETURN NUMBER IS v_bonus NUMBER := 0; v_total_salary NUMBER := 0; BEGIN IF p_overtime >= 50 THEN v_bonus := 1000; ELSIF p_overtime >= 30 AND p_overtime

值得一提的是,在Oracle中,存储函数可以返回各种不同的数据类型,包括数字、字符串、日期、布尔值等等。例如,下面的代码定义了一个名为IS_VALID的存储函数,它根据传入的身份证号判断该号码是否为有效身份证:

CREATE OR REPLACE FUNCTION IS_VALID(p_idcard IN VARCHAR2) RETURN BOOLEAN IS BEGIN IF LENGTH(p_idcard)18 OR NOT REGEXP_LIKE(p_idcard, '^[0-9]{17}[0-9X]$') THEN RETURN FALSE; END IF; -- 校验身份证号码逻辑省略 RETURN TRUE; END;