日期:2014-05-17 浏览次数:20942 次
/****************************************************************** * 表名:EMP * 时间:2011-12-22 10:19:44 * Made by Codematic ******************************************************************/ ------------------------------------ --用途:得到主键字段最大值 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE OR REPLACE PROCEDURE EMP_GetMaxId ( ) IS TempID Number; BEGIN SELECT max(EMPNO) into TempID FROM EMP IF NVL(TempID) then RETURN 1; ELSE RETURN TempID; end IF; END; ------------------------------------ --用途:是否已经存在 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE PROCEDURE EMP_Exists ( EMPNO_in NUMBER ) AS TempID Number; BEGIN SELECT count(1) into TempID FROM EMP WHERE EMPNO= EMPNO_in IF TempID = 0 then RETURN 0; ELSE RETURN 1; end IF; END; ------------------------------------ --用途:增加一条记录 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE PROCEDURE EMP_ADD ( EMPNO_in NUMBER ) AS BEGIN INSERT INTO EMP( EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO )VALUES( EMPNO_in ,ENAME_in ,JOB_in ,MGR_in ,HIREDATE_in ,SAL_in ,COMM_in ,DEPTNO_in ); COMMIT; END; ------------------------------------ --用途:修改一条记录 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE PROCEDURE EMP_Update EMPNO_in NUMBER, ENAME_in VARCHAR2, JOB_in VARCHAR2, MGR_in NUMBER, HIREDATE_in DATE, SAL_in NUMBER, COMM_in NUMBER, DEPTNO_in NUMBER AS BEGIN UPDATE EMP SET ENAME = ENAME_in ,JOB = JOB_in ,MGR = MGR_in ,HIREDATE = HIREDATE_in ,SAL = SAL_in ,COMM = COMM_in ,DEPTNO = DEPTNO_in WHERE EMPNO= EMPNO_in COMMIT; END; ------------------------------------ --用途:删除一条记录 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE PROCEDURE EMP_Delete EMPNO_in NUMBER BEGIN AS DELETE EMP WHERE EMPNO= EMPNO_in COMMIT; END; ------------------------------------ --用途:得到实体对象的详细信息 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE PROCEDURE EMP_GetModel EMPNO_in NUMBER AS BEGIN SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM EMP WHERE EMPNO= EMPNO_in COMMIT; END; ------------------------------------ --用途:查询记录信息 --项目名称: --说明: --时间:2011-12-22 10:19:44 ------------------------------------ CREATE PROCEDURE EMP_GetList AS BEGIN SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM EMP COMMIT; END;
CREATE OR REPLACE FUNCTION EMP_GetMaxId RETURN NUMBER IS TempID NUMBER; BEGIN SELECT NVL(max(EMPNO), 1) into TempID FROM EMP; RETURN TempID; END;
------解决方案--------------------
1)少啦“;”.
2)存储过程没有返回值。
------解决方案--------------------
1.缺少分号
2. IF NVL(TempID) 这样的写法有点怪。。 没见过。