λͺ λ Ήμ΄ μ€ν > μ²λ¦¬ κ³Όμ
a. ν΄λΌμ΄μΈνΈ > ꡬ문 μμ±(select)
b. μ€ν(Ctrl + Enter)
c. λͺ
λ Ήμ΄λ₯Ό μ€λΌν΄ μλ²μ μ λ¬
d. μλ²κ° λͺ
λ Ήμ΄λ₯Ό μμ
e. ꡬ문 λΆμ(νμ±) + λ¬Έλ² κ²μ¬
f. μ»΄νμΌ
g. μ€ν(select)
h. κ²°κ³Όμ
λμΆ
i. κ²°κ³Όμ
μ ν΄λΌμ΄μΈνΈμκ² λ°ν
j. κ²°κ³Όμ
μ νλ©΄μ μΆλ ₯
a. ν΄λΌμ΄μΈνΈ > ꡬ문 μμ±(create)
b. μ€ν(Ctrl + Enter)
c. λͺ
λ Ήμ΄λ₯Ό μ€λΌν΄ μλ²μ μ λ¬
d. μλ²κ° λͺ
λ Ήμ΄λ₯Ό μμ
e. ꡬ문 λΆμ(νμ±) + λ¬Έλ² κ²μ¬
f. μ»΄νμΌ
g. μ€ν
h. μ€λΌν΄ μλ² > νλ‘μμ μμ± > μ μ₯ (create μμ€ μλ³Έμ΄ μλκ³ μ»΄νμΌλ κΈ°κ³μ΄λ₯Ό μ€λΌν΄ HDDμ μ μ₯νλ€.)
i. μλ£
a. ν΄λΌμ΄μΈνΈ > ꡬ문 μμ±(νΈμΆ)
b. μ€ν(Ctrl + Enter)
c. λͺ
λ Ήμ΄λ₯Ό μ€λΌν΄ μλ²μ μ λ¬
d. μλ²κ° λͺ
λ Ήμ΄λ₯Ό μμ
e. ꡬ문 λΆμ(νμ±) + λ¬Έλ² κ²μ¬
f. μ»΄νμΌ
g. μ€ν > νλ‘μμ μ€ν
a. ν΄λΌμ΄μΈνΈ > ꡬ문 μμ±(νΈμΆ)
b. μ€ν(Ctrl + Enter)
c. λͺ
λ Ήμ΄λ₯Ό μ€λΌν΄ μλ²μ μ λ¬ -> νλ‘μμ λͺ
λ§ λμ΄κ° -> λ€νΈμν¬ νΈλν½ κ°μ -> νΈμΆ μ μ»΄νμΌ μν¨.
d. μλ²κ° λͺ
λ Ήμ΄λ₯Ό μμ
e. ꡬ문 λΆμ(νμ±) + λ¬Έλ² κ²μ¬
f. μ»΄νμΌ
g. μ€ν > νλ‘μμ μ€ν
μ΅λͺ
νλ‘μμ
- 1νμ©
μ€λͺ νλ‘μμ
declare
λ³μ μ μΈ;
컀μ μ μΈ;
begin
ꡬνλΆ;
exception
μμΈμ²λ¦¬;
end;
create [or replace] procedure νλ‘μμ λͺ
-> 보ν΅μ or replace μ΄λ€.
is(as)
[λ³μ μ μΈ;
컀μ μ μΈ;]
begin
ꡬνλΆ;
[exception
μμΈμ²λ¦¬;]
end;
μ΅λͺ
νλ‘μμ λ μ¦μ μ€νλμ§λ§, μ μ₯ νλ‘μμ λ λ¨Όμ μμ±μ ν λ€ νΈμΆμ ν΄μΌ μ€νλλ€.
μλ°μ λ©μλμ λΉμ·νλ€.
μ μ₯ νλ‘μμ μμ± = μλ° λ©μλ μμ±
μ μ₯ νλ‘μμ νΈμΆ = μλ° λ©μλ νΈμΆ
μ μ₯ νλ‘μμ = λ©μλ
맀κ°λ³μ + λ°νκ°
create or replace procedure procTest(pnum number) --맀κ°λ³μ
is -- λ³μ μ μΈμ΄ μμ΄λ λ°λμ κΈ°μ¬
vresult number; -- μΌλ°λ³μ
begin
vresult := pnum * 2;
dbms_output.put_line(vresult);
end procTest;
begin
-- PL/SQL μμ
procTest(100);
procTest(200);
procTest(300);
end;
νλ‘μμ μμ±νλ ꡬμμλ§ PL/SQLλ§ μΈ μ μκ³ , κ·Έ λ°μλ ANSI-SQLλ§ μΈ μ μλ€.
μ¬μ€ κ°λ₯μ νμ§λ§ λΆμμ μ μ΄κΈ° λλ¬Έμ μμ μ μλλ‘ μ¬μ©νμ.
νλ‘μμ 맀κ°λ³μλ κΈΈμ΄μ not null ννμ λΆκ°λ₯νλ€. (μ€μ)
맀κ°λ³μ λͺ¨λ
- 맀κ°λ³μκ° κ°μ μ λ¬νλ λ°©μ
- Call by Value > 맀κ°λ³μ > κ°μ λκΈ°λ λ°©μ(κ°ν μΈμ)
- Call by Reference > 맀κ°λ³μ > μ°Έμ‘°κ°(μ£Όμ)μ λκΈ°λ λ°©μ(μ°Έμ‘°ν μΈμ)
create or replace procedure procTest(
pnum1 in number, -- in parameter //μΈμκ°
pnum2 in number,
presult out number, -- out parameter //λ°νκ°
presult2 out number, -- λ°νκ°
presult3 out number -- λ°νκ°
)
is
begin
presult := pnum1 + pnum2;
presult2 := pnum1 - pnum2;
presult3 := pnum1 * pnum2;
end procTest;
declare
vnum number;
vnum2 number;
vnum3 number;
begin
procTest(10, 20, vnum, vnum2, vnum3); -- vnumμ μ£Όμκ°μ΄ μ λ¬λ¨. (μ°Έμ‘°κ°)
dbms_output.put_line(vnum);
dbms_output.put_line(vnum2);
dbms_output.put_line(vnum3);
end;