数据库包的使用
Posted 王。雄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库包的使用相关的知识,希望对你有一定的参考价值。
CREATE OR REPLACE PACKAGE demo_pack --创建包定义 IS DeptRec dept%ROWTYPE; FUNCTION add_dept( --声明一个方法 dept_no NUMBER, dept_name VARCHAR2, location VARCHAR2) RETURN NUMBER; FUNCTION remove_dept(dept_no NUMBER) --声明另个方法 RETURN NUMBER; PROCEDURE query_dept(dept_no IN NUMBER); END demo_pack; CREATE OR REPLACE PACKAGE BODY demo_pack --创建包体 IS FUNCTION add_dept --实现包定义的方法 (dept_no NUMBER, dept_name VARCHAR2, location VARCHAR2) RETURN NUMBER IS empno_remaining EXCEPTION; PRAGMA EXCEPTION_INIT(empno_remaining, -1); BEGIN INSERT INTO dept VALUES(dept_no, dept_name, location); IF SQL%FOUND THEN RETURN 1; END IF; EXCEPTION WHEN empno_remaining THEN RETURN 0; WHEN OTHERS THEN RETURN -1; END add_dept; FUNCTION remove_dept(dept_no NUMBER) --实现包定义的另一方法 RETURN NUMBER IS BEGIN DELETE FROM dept WHERE deptno=dept_no; IF SQL%FOUND THEN RETURN 1; ELSE RETURN 0; END IF; EXCEPTION WHEN OTHERS THEN RETURN -1; END remove_dept; PROCEDURE query_dept (dept_no IN NUMBER) IS BEGIN SELECT * INTO DeptRec FROM dept WHERE deptno=dept_no; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(‘数据库中没有编码为‘||dept_no||‘的部门‘); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE(‘程序运行错误!请使用游标‘); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||‘----‘||SQLERRM); END query_dept; END demo_pack; DECLARE --调用包 Var NUMBER; BEGIN Var := demo_pack.add_dept(80,‘阿晨‘, ‘西安‘); IF var =-1 THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||‘----‘||SQLERRM); ELSIF var =0 THEN DBMS_OUTPUT.PUT_LINE(‘该部门记录已经存在!‘); ELSE DBMS_OUTPUT.PUT_LINE(‘添加记录成功!‘); Demo_pack.query_dept(80); DBMS_OUTPUT.PUT_LINE(demo_pack.DeptRec.deptno||‘---‘|| demo_pack.DeptRec.dname||‘---‘||demo_pack.DeptRec.loc); var := demo_pack.remove_dept(80); IF var =-1 THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||‘----‘||SQLERRM); ELSIF var=0 THEN DBMS_OUTPUT.PUT_LINE(‘该部门记录不存在!‘); ELSE DBMS_OUTPUT.PUT_LINE(‘删除记录成功!‘); END IF; END IF; END;
以上是关于数据库包的使用的主要内容,如果未能解决你的问题,请参考以下文章
如何在片段中使用 GetJsonFromUrlTask.java
Android 使用两个不同的代码片段获取当前位置 NULL
如何在 Toad for Oracle 中使用自定义代码片段?