empinfo Oracle数据库,Oracle数据库---包
--根據(jù)員工號(hào)或員工姓名獲取員工的信息
--根據(jù)員工號(hào)或員工姓名刪除員工的信息
--創(chuàng)建包規(guī)范
CREATE OR REPLACE PACKAGE overload_pkg
IS
FUNCTION get_info(eno NUMBER) RETURN emp%ROWTYPE;
FUNCTION get_info(name VARCHAR2) RETURN emp%ROWTYPE;
PROCEDURE del_emp(eno NUMBER);
PROCEDURE del_emp(name VARCHAR2);
END;
--創(chuàng)建包體
CREATE OR REPLACE PACKAGE BODY overload_pkg
IS
FUNCTION get_info(eno NUMBER) RETURN emp%ROWTYPE
IS
emp_record emp%ROWTYPE;
BEGIN
SELECT * INTO emp_record FROM emp WHERE empno = eno;
RETURN emp_record;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20020,‘不存在此員工!‘);
END;
FUNCTION get_info(name VARCHAR2) RETURN emp%ROWTYPE
IS
emp_record emp%ROWTYPE;
BEGIN
SELECT * INTO emp_record FROM emp WHERE ename = name;
RETURN emp_record;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20020,‘不存在此員工!‘);
END;
PROCEDURE del_emp(eno NUMBER)
IS
BEGIN
DELETE FROM emp WHERE empno = eno;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20020,‘不存在此員工‘);
END IF;
END;
PROCEDURE del_emp(name VARCHAR2)
IS
BEGIN
DELETE FROM emp WHERE ename = name;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20020,‘不存在此員工‘);
END IF;
END;
END;
--調(diào)用
--根據(jù)員工號(hào)查詢員工信息
DECLARE
emp_record emp%rowtype;
e_no_emp EXCEPTION;
PRAGMA EXCEPTION_INIT(e_no_emp,-20020);
BEGIN
emp_record:= overload_pkg.get_info(&no);
DBMS_OUTPUT.PUT_LINE(‘員工號(hào):‘||emp_record.empno||‘姓名:‘||emp_record.ename||‘工資:‘||emp_record.sal);
EXCEPTION
WHEN e_no_emp THEN
DBMS_OUTPUT.put_line(SQLERRM);
END;
--根據(jù)員工姓名查詢員工信息
DECLARE
emp_record emp%rowtype;
e_no_emp EXCEPTION;
PRAGMA EXCEPTION_INIT(e_no_emp,-20020);
BEGIN
emp_record:= overload_pkg.get_info(‘&name‘);
DBMS_OUTPUT.PUT_LINE(‘員工號(hào):‘||emp_record.empno||‘姓名:‘||emp_record.ename||‘工資:‘||emp_record.sal);
EXCEPTION
WHEN e_no_emp THEN
DBMS_OUTPUT.put_line(SQLERRM);
END;
--根據(jù)員工號(hào)刪除員工信息
DECLARE
e_no_emp EXCEPTION;
PRAGMA EXCEPTION_INIT(e_no_emp, -20020);
BEGIN
overload_pkg.del_emp(&no);
COMMIT;
EXCEPTION
WHEN e_no_emp THEN
DBMS_OUTPUT.put_line(SQLERRM);
ROLLBACK;
END;
SELECT * FROM EMP;
--根據(jù)員工的姓名刪除員工的信息
DECLARE
e_no_emp EXCEPTION;
PRAGMA EXCEPTION_INIT(e_no_emp, -20020);
BEGIN
overload_pkg.del_emp(‘&name‘);
COMMIT;
EXCEPTION
WHEN e_no_emp THEN
DBMS_OUTPUT.put_line(SQLERRM);
ROLLBACK;
END;
Oracle數(shù)據(jù)庫(kù)---包
標(biāo)簽:ati???row???規(guī)范???ora???init???otf???raise???sql???--
本條技術(shù)文章來(lái)源于互聯(lián)網(wǎng),如果無(wú)意侵犯您的權(quán)益請(qǐng)點(diǎn)擊此處反饋版權(quán)投訴 本文系統(tǒng)來(lái)源:https://www.cnblogs.com/xiaomifeng1010/p/11135421.html
總結(jié)
以上是生活随笔為你收集整理的empinfo Oracle数据库,Oracle数据库---包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 有点好奇益禾堂总部在哪,有人知道不?
- 下一篇: linux cmake编译源码,linu