oracle 是用于逻辑组合多个过程或函数.
一个oracle包包含两部份:
1.包规范
相当于java里的接口.
相当于java里的接口实现类.
包的调用:
1.测试调用包过程
2.测试调用包函数
一个oracle包包含两部份:
1.包规范
--
包规范
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.包体
CREATE
IS
END
--
包体
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;
CREATE
IS
END
包的调用:
1.测试调用包过程
--
测试调用包过程
BEGIN
pkg_edm.add_test_hui(
99999
,
'
asdfasdf
'
);
END ;
BEGIN
END ;
2.测试调用包函数
--
测试调用包函数
DECLARE
temp_value
VARCHAR2
(
64
);
BEGIN
temp_value :
=
pkg_edm.getValueById(
8713
);
dbms_output.put_line(temp_value);
END ;
DECLARE
BEGIN
END ;