oracle 是用于逻辑组合多个过程或函数.
一个oracle包包含两部份:
1.包规范
相当于java里的接口.
-- 包规范
CREATE OR REPLACE PACKAGE pkg_edm
IS
age NUMBER := 30;
PROCEDURE add_test_hui(
in_id IN NUMBER,
in_value IN VARCHAR2);
FUNCTION getValueById(
in_id IN NUMBER) RETURN VARCHAR2;
END pkg_edm;
2.包体
相当于java里的接口实现类.
-- 包体
CREATE OR REPLACE PACKAGE BODY pkg_edm
IS
-- 查询函数
FUNCTION getValueById(
in_id IN NUMBER) RETURN VARCHAR2
IS
rtn_value VARCHAR2(64) := '';
BEGIN
SELECT VALUE INTO rtn_value FROM test_hui WHERE ID=in_id;
RETURN rtn_value;
EXCEPTION
WHEN OTHERS THEN
RETURN rtn_value;
END getValueById;
-- 插入记录过程
PROCEDURE add_test_hui(
in_id IN NUMBER,
in_value IN VARCHAR2)
IS
BEGIN
INSERT INTO test_hui (ID,VALUE) VALUES(in_id,in_value);
COMMIT;
END add_test_hui;
END pkg_edm;
包的调用:
1.测试调用包过程
--测试调用包过程
BEGIN
pkg_edm.add_test_hui(99999,'asdfasdf');
END;
2.测试调用包函数
--测试调用包函数
DECLARE
temp_value VARCHAR2(64);
BEGIN
temp_value := pkg_edm.getValueById(8713);
dbms_output.put_line(temp_value);
END;