日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

empinfo Oracle数据库,Oracle数据库---包

發布時間:2025/3/8 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 empinfo Oracle数据库,Oracle数据库---包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--根據員工號或員工姓名獲取員工的信息

--根據員工號或員工姓名刪除員工的信息

--創建包規范

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;

--創建包體

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;

--調用

--根據員工號查詢員工信息

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(‘員工號:‘||emp_record.empno||‘姓名:‘||emp_record.ename||‘工資:‘||emp_record.sal);

EXCEPTION

WHEN e_no_emp THEN

DBMS_OUTPUT.put_line(SQLERRM);

END;

--根據員工姓名查詢員工信息

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(‘員工號:‘||emp_record.empno||‘姓名:‘||emp_record.ename||‘工資:‘||emp_record.sal);

EXCEPTION

WHEN e_no_emp THEN

DBMS_OUTPUT.put_line(SQLERRM);

END;

--根據員工號刪除員工信息

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;

--根據員工的姓名刪除員工的信息

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數據庫---包

標簽:ati???row???規范???ora???init???otf???raise???sql???--

本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴 本文系統來源:https://www.cnblogs.com/xiaomifeng1010/p/11135421.html

總結

以上是生活随笔為你收集整理的empinfo Oracle数据库,Oracle数据库---包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。