Function 用于在过程中使用自动增量的Oracle函数

Function 用于在过程中使用自动增量的Oracle函数,function,stored-procedures,oracle10g,Function,Stored Procedures,Oracle10g,我有一个表名render,我为它创建了一个过程。 我的桌子是空的 CREATE TABLE ROOM( ROOM_ID NUMBER(10) NOT NULL, ROOM_NO NUMBER(10) NOT NULL, ROOM_DETAILS VARCHAR2(100) NOT NULL, PRICE NUMBER(30) NOT NULL, ROOM_PACKAGE VARCHAR2(100) NOT NULL ); 程序是 CREATE OR REPLACE PROCEDUR

我有一个表名render,我为它创建了一个过程。 我的桌子是空的

 CREATE TABLE ROOM(
 ROOM_ID NUMBER(10) NOT NULL,
 ROOM_NO NUMBER(10) NOT NULL,
 ROOM_DETAILS VARCHAR2(100) NOT NULL,
 PRICE NUMBER(30) NOT NULL,
 ROOM_PACKAGE VARCHAR2(100) NOT NULL
);
程序是

CREATE OR REPLACE PROCEDURE P_ROOM(
    p_room_id IN ROOM.ROOM_ID%TYPE,
    p_room_no IN ROOM.ROOM_NO%TYPE,
    p_room_details IN ROOM.ROOM_DETAILS%TYPE,
    p_price IN ROOM.PRICE%TYPE,
    p_room_package IN ROOM.ROOM_PACKAGE%TYPE)
 IS
BEGIN
INSERT INTO ROOM("ROOM_ID","ROOM_NO","ROOM_DETAILS","PRICE","ROOM_PACKAGE")
VALUES(p_room_id,p_room_no,p_room_details,p_price,p_room_package);
COMMIT;
END;    
/
但我想做一个函数,它将调用过程并用于增加ROOM_ID。我如何创建一个函数来实现这一点? 我正试图创建一个函数,但实际上我做不到

CREATE OR REPLACE FUNCTION AUTO_GEN
ID IN ROOM.ROOM_ID%TYPE
RETURN NUMBER
BEGIN
F_ID NUMBER(5);
F_ID=SELECT MAX(ROOM_ID) FROM ROOM;
 IF(ROOM_ID NULL) THEN
    ID=0;
  ELSE
    ID=ROOM_ID+1;
END IF;
RETURN ID;
END;
/

对不起,表名是ROOMMust
必须计算房间ID
?为什么不使用带触发器的序列?