1 语法

CREATE OR REPLACE FUNCTION 函数名
RETURN 返回值类型
IS
声明部分;
BEGIN
函数体;
RETURN 变量;
END;

2 案例

CREATE OR REPLACE FUNCTION NEXTVALL (V_TYPE IN VARCHAR2) RETURN NUMBER IS
    PRAGMA AUTONOMOUS_TRANSACTION; -- 添加自治事务
    CUR NUMBER;
    NUM NUMBER;
		countNum NUMBER;
BEGIN
			SELECT COUNT(*) into countNum FROM T_SYS_SEQUENCE WHERE TYPE = V_TYPE;
			IF countNum > 0 THEN
					SELECT CURRENT_VALUE into CUR FROM T_SYS_SEQUENCE WHERE TYPE = V_TYPE;
					UPDATE t_sys_sequence SET CURRENT_VALUE = CURRENT_VALUE + "INCREMENT" WHERE TYPE = V_TYPE;
					return CUR+1;
			ELSE
					INSERT INTO T_SYS_SEQUENCE (PK_ID,"TYPE", CURRENT_VALUE, "INCREMENT") VALUES (seq_t_sys_sequence.NEXTVAL,V_TYPE, 1, 1);
					commit;
					RETURN 1; -- 表中没有数据
			END IF;

END NEXTVALL;