νλ‘μμ (PROCEDURE)
νΉμ μ
무λ₯Ό μ²λ¦¬νλ μΌλ ¨μ μμ
μ νλ‘κ·Έλ¨μΌλ‘ μ μ₯νμ¬ μ¬μ©νλ κ°μ²΄
νλ‘μμ μμ±
β’
νλΌλ―Έν° μλ νλ‘μμ
CREATE OR REPLACE PROCEDURE νλ‘μμ λͺ
IS | AS
μ μΈλΆ
BEGIN
μ€νλΆ
EXCEPTION
μμΈ μ²λ¦¬λΆ
END [νλ‘μμ λͺ
];
SQL
볡μ¬
β’
νλΌλ―Έν° μλ νλ‘μμ
CREATE OR REPLACE PROCEDURE νλ‘μμ λͺ
(
νλΌλ―Έν°1 [IN / OUT / IN OUT] λ°μ΄ν°νμ
[ := κ° | DEFAULT κΈ°λ³Έκ° ],
νλΌλ―Έν°2 [IN / OUT / IN OUT] λ°μ΄ν°νμ
[ := κ° | DEFAULT κΈ°λ³Έκ° ],
...
)
IS | AS
μ μΈλΆ
BEGIN
μ€νλΆ
EXCEPTION
μμΈ μ²λ¦¬λΆ
END [νλ‘μμ λͺ
];
SQL
볡μ¬
νλ‘μμ μ€ν
EXCUTE νλ‘μμ λͺ
;
EXCUTE νλ‘μμ λͺ
(μΈμ1, μΈμ2, ...);
EXCUTE νλ‘μμ λͺ
(νλΌλ―Έν°1 => μΈμ1, νλΌλ―Έν°2 => μΈμ2, ...);
SQL
볡μ¬
νλ‘μμ μμ
DROP PROCEDURE νλ‘μμ λͺ
;
SQL
볡μ¬
νλ‘μμ μμμ½λ
νλΌλ―Έν° μλ νλ‘μμ
β’
νλ‘μμ μμ±
-- νλ‘μμ μμ±
CREATE OR REPLACE PROCEDURE pro_print
IS
V_A NUMBER := 10;
V_B NUMBER := 20;
V_C NUMBER;
BEGIN
V_C := V_A + V_B;
DBMS_OUTPUT.PUT_LINE('V_C : ' || V_C);
END;
/
SQL
볡μ¬
β’
νλ‘μμ μ€ν
EXCUTE pro_print();
SQL
볡μ¬
νλΌλ―Έν° μλ νλ‘μμ
β’
νλ‘μμ μμ±
-- νλ‘μμ μμ±
CREATE OR REPLACE PROCEDURE PRO_SUM
(
NUM1 IN NUMBER,
NUM2 IN NUMBER,
RESULT OUT NUMBER
)
IS
BEGIN
RESULT := NUM1 + NUM2 ;
DBMS_OUTPUT.PUT_LINE('RESULT : ' || RESULT );
END;
/
SQL
볡μ¬
β’
νλ‘μμ μ€ν
DECLARE
RESULT_VAL NUMBER;
BEGIN
-- νλ‘μμ νΈμΆ
PRO_SUM( 10, 20, RESULT_VAL );
-- κ²°κ³Ό μΆλ ₯
DBMS_OUTPUT.PUT_LINE( RESULT_VAL );
END;
/
SQL
볡μ¬