μλ νμΈμ Foma π» μ λλ€!
μ€λμ μ¬λ¬ ν¨μμ νλ‘μμ λ₯Ό λ¬Άμ΄μ μ¬μ©ν μ μλ ν¨ν€μ§μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
λ°λ‘ μμν κ²μ~
ν¨ν€μ§(Package)λ?
ν¨ν€μ§λ νλ‘μμ λλ ν¨μ λ± μλΈ νλ‘κ·Έλ¨μ νλλ‘ λ¬Άμ΄λμ κ°μ²΄μ λλ€.
μλ₯Ό λ€λ©΄ μνμ κ΄ν ν¨μλ€μ λͺ¨μ λμ MATHλΌλ ν¨ν€μ§κ° μκ³ κ·Έ μμ μ°μ°μ νλ ν¨μ λλ νλ‘μμ λ±μ΄ μλ κ²μ λλ€.
ν¨ν€μ§λ μ»΄νμΌμ κ±°μ³μ μ€νλλ©°, λ€λ₯Έ ν¨ν€μ§λ₯Ό μ°Έμ‘°,μ€νν μ μμ΅λλ€.
μ₯μ
λͺ¨λν
ν¨μμ νλ‘μμ λ± μλΈ νλ‘κ·Έλ¨μ ν κ³³μ λͺ¨μμ μ¬μ©ν μ μμΌλ―λ‘ κ΄λ¦¬ λ° μ¬μ©νκΈ°κ° μμν©λλ€.
μΊ‘μν
μ μΈλΆλ§ μΈλΆμ 곡κ°λκ³ , λ³Έλ¬Έμ κ°μΆ°μ Έ μκΈ° λλ¬Έμ μ κ·Όμ μ μ΄νμ¬ μ€μ©μ λ°©μ§ν©λλ€.
μ±λ₯
ν¨ν€μ§μ μλΈ νλ‘κ·Έλ¨ νΈμΆ μ ν¨ν€μ§ μ μ²΄κ° λ©λͺ¨λ¦¬μ μ¬λΌκ° λ€λ₯Έ μλΈ νλ‘κ·Έλ¨ νΈμΆ μ ν¨μ¬ λμ μ±λ₯μ 보μ λλ€.
ν¨ν€μ§ μ μΈλΆ(Package Definition)
μ΄λ€ ν¨μ λλ νλ‘μμ κ° μλμ§ μ μν©λλ€.
ν¨μ OR νλ‘μμ μ μ΄λ¦, 맀κ°λ³μ,λ°νλλ νμ (ν¨μλΌλ©΄) λ±μ μμ±ν΄μ€λλ€.
CREATE OR replace PACKAGE ν¨ν€μ§μ΄λ¦
AS
FUNCTION ν¨μμ΄λ¦(
νλΌλ―Έν°1μ΄λ¦ νμ
,
νλΌλ―Έν°2μ΄λ¦ νμ
...)
RETURN νμ
;
PROCEDURE νλ‘μμ μ΄λ¦(
νλΌλ―Έν°λͺ
1 μ
μΆλ ₯ νμ
,
νλΌλ―Έν°λͺ
1 μ
μΆλ ₯ νμ
...)
END ν¨ν€μ§μ΄λ¦;
TWONUMBER_MATHμ μ μΈλΆ
λ κ°μ μ«μλ₯Ό λ°μ μ°μ°μ ν΄μ£Όλ ν¨ν€μ§λ₯Ό λ§λ€μ΄ μ£Όκ² μ΅λλ€.
CREATE OR replace PACKAGE twonumber_math
AS
FUNCTION Twonumber_sum(
n1 NUMBER,
n2 NUMBER)
RETURN NUMBER;
FUNCTION Twonumber_minus(
n1 NUMBER,
n2 NUMBER)
RETURN NUMBER;
FUNCTION Twonumber_multiply(
n1 NUMBER,
n2 NUMBER)
RETURN NUMBER;
FUNCTION Twonumber_divide(
n1 NUMBER,
n2 NUMBER)
RETURN NUMBER;
END twonumber_math;
ν¨ν€μ§ λ³Έλ¬Έ(Package Body)
μ μΈλ¬Έμ μ΄ ν¨μλ€μ ꡬ체μ μΌλ‘ μ΄λ€ μ€νμ΄ μΌμ΄λ κ²μΈμ§λ₯Ό μμ±ν΄μ€λλ€.
CREATE OR replace PACKAGE BODY
ν¨ν€μ§μ΄λ¦
AS
FUNCTION ν¨μμ΄λ¦( νλΌλ―Έν°λͺ
1 νμ
,
νλΌλ―Έν°λͺ
2 νμ
...)
RETURN νμ
IS
λ³μ μ μΈ
BEGIN
μ€νλ¬Έ
RETURN λ°νκ°;
END;
PROCEDURE νλ‘μμ μ΄λ¦( νλΌλ―Έν°λͺ
1 μ
μΆλ ₯νμ
νμ
,
νλΌλ―Έν°λͺ
2 μ
μΆλ ₯νμ
νμ
...)
IS
λ³μ μ μΈ
BEGIN
μ€νλ¬Έ
RETURN λ°νκ°;
END;
END ν¨ν€μ§μ΄λ¦;
TWONUMBER_MATHμ λ³Έλ¬Έ
CREATE OR replace PACKAGE BODY twonumber_math
AS
-- λ κ° μ«μλ₯Ό ν©μ³μ£Όλ ν¨μ
FUNCTION Twonumber_sum(n1 NUMBER,
n2 NUMBER)
RETURN NUMBER
IS
twonum_sum NUMBER := 0;
BEGIN
twonum_sum := n1 + n2;
RETURN twonum_sum;
END;
-- λ κ° μ«μλ₯Ό λΉΌλ ν¨μ
FUNCTION Twonumber_minus(n1 NUMBER,
n2 NUMBER)
RETURN NUMBER
IS
twonum_minus NUMBER := 0;
BEGIN
twonum_minus := n1 - n2;
RETURN twonum_minus;
END;
-- λ κ° μ«μλ₯Ό κ³±νλ ν¨μ
FUNCTION Twonumber_multiply(n1 NUMBER,
n2 NUMBER)
RETURN NUMBER
IS
twonum_multiply NUMBER := 0;
BEGIN
twonum_multiply := n1 * n2;
RETURN twonum_multiply;
END;
-- λ κ° ν¨μλ₯Ό λλλ ν¨μ
FUNCTION Twonumber_divide(n1 NUMBER,
n2 NUMBER)
RETURN NUMBER
IS
twonum_divide NUMBER := 0;
BEGIN
twonum_divide := n1 / n2;
RETURN twonum_divide;
END;
END twonumber_math;
μ€ν
SELECT ν¨ν€μ§μ΄λ¦.ν¨μ(νλΌλ―Έν°κ°)
FROM ν
μ΄λΈμ΄λ¦;
--OR
BEGIN
ν¨ν€μ§μ΄λ¦.νλ‘μμ (νλΌλ―Έν°);
END;
μμμ μμ±ν λ μ«μλ₯Ό μ°μ°νλ ν¨ν€μ§μΈ TWONUMBER_MATHμ ν¨μλ€μ μ€ν μμΌ λ³΄κ² μ΅λλ€.
SELECT TWONUMBER_MATH.TWONUMBER_SUM(3,5) λμ«μλνκΈ°
FROM DUAL;
SELECT TWONUMBER_MATH.TWONUMBER_MINUS(3,5) λμ«μλΉΌκΈ°
FROM DUAL;
SELECT TWONUMBER_MATH.TWONUMBER_MULTIPLY(3,5) λμ«μκ³±νκΈ°
FROM DUAL;
SELECT TWONUMBER_MATH.TWONUMBER_DIVIDE(3,5) λμ«μλλκΈ°
FROM DUAL;
μλμ κ°μ΄ λνκ³ ,λΊ΄κ³ ,κ³±νκ³ ,λλλ κ°μ΄ μΆλ ₯λλ κ²μ λ³Ό μ μμ΅λλ€.
μ‘°ν
μλμ κ°μ΄ ALL_PROCEDURESλ‘ κ²μνλ©΄ ν¨μμ νλ‘μμ κ° λͺ¨λ μΆλ ₯λ©λλ€.
SELECT *
FROM ALL_PROCEDURES
WHERE OBJECT_NAME = 'ν¨ν€μ§μ΄λ¦';
TWONUMBER_MATHλ₯Ό μ‘°ννλ©΄
SELECT *
FROM ALL_PROCEDURES
WHERE OBJECT_NAME = 'TWONUMBER_MATH';
μλμ κ°μ΄ TWONUMBER_MATH ν¨ν€μ§ λ΄ ν¨μλ€μ΄ μΆλ ₯λλ κ²μ λ³Ό μ μμ΅λλ€.
μμ
CREATE OR replaceλ₯Ό μ¬μ©νμ¬ μμ±κ³Ό λκ°μ΄ νμλ©΄ λ©λλ€.
λ§μ½ ν¨ν€μ§κ° μλ€λ©΄ μμ μ΄ λλλ‘ νκ³ , μλ€λ©΄ μμ±λλλ‘ ν©λλ€.
CREATE OR replace...
μμ
DROP PACKAGE ν¨ν€μ§μ΄λ¦;
TWONUMBER_MATH ν¨ν€μ§λ₯Ό μμ ν λ μλμ κ°μ΄ μμ±ν΄μ£Όμλ©΄ λ©λλ€.
DROP PACKAGE TWONUMBER_MATH;
'π Database > Oracle' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Oracle] ν¨μ(Function)μ νλ‘μμ (Procedure) μ°¨μ΄ (1) | 2022.03.05 |
---|---|
[Oracle] ν¨μ(Function)λ? (feat. C.R.U.D) (0) | 2022.03.05 |
[Oracle] μΈλ±μ€(Index)λ? (feat. C.R.U.D) (0) | 2022.03.05 |
[Oracle] νΈλ¦¬κ±°(Trigger)λ? (feat. C.R.U.D) (0) | 2022.03.05 |
[Oracle] νλ‘μμ (Procedure)λ? (feat. C.R.U.D) (0) | 2022.03.04 |
λκΈ