κ°μ
λ³μμ μμλ νλ‘κ·Έλλ°μμ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ²λ¦¬νλ μ€μν μμμ λλ€. μ€λΌν΄ PL/SQLμμλ λ³μμ μμλ₯Ό μ μΈνκ³ μ¬μ©ν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ κ°κ³΅κ³Ό μ°μ°μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μμ΅λλ€.
μ΄ κΈμ μ€λΌν΄ PL/SQLμμ λ³μμ μμλ₯Ό μ μΈνλ λ°©λ²λΆν° μ΄κΈ°ν λ° ν λΉνλ λ°©λ², κ·Έλ¦¬κ³ μ¬μ© μ μ£Όμμ¬νκ³Ό μ€μ μμλ₯Ό ν΅ν΄ λ³μμ μμμ νμ©λ²μ λν΄ μμλ³΄κ² μ΅λλ€. λ€μμ μ΄ κΈμ ꡬμ±μ λλ€.
- λ³μμ μμμ μ μΈ
- λ³μμ μμμ μ΄κΈ°ν λ° ν λΉ
- λ³μμ μμ μ¬μ© μ μ£Όμμ¬ν
- λ³μμ μμμ νμ© μμ
μ΄μ κ° νλͺ©λ³λ‘ μμΈν μ΄ν΄λ³΄κ² μ΅λλ€.
λ³μμ μμμ μ μΈ
λ³μμ μμλ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ 곡κ°μ ν λΉνλ μμ μ λλ€. λ³μλ κ°μ λ³κ²½ν μ μλ 곡κ°μ΄λ©°, μμλ ν λ² μ ν΄μ§ κ°μ λ³κ²½ν μ μλ 곡κ°μ λλ€.
λ³μμ μ μΈ
λ³μλ₯Ό μ μΈνκΈ° μν΄μλ λ€μκ³Ό κ°μ νμμ μ¬μ©ν©λλ€.
λ³μλͺ
λ°μ΄ν°νμ
;
μλ₯Ό λ€μ΄, μ μν λ³μλ₯Ό μ μΈνλ €λ©΄ λ€μκ³Ό κ°μ΄ μμ±ν μ μμ΅λλ€.
num INT;
μμμ μ μΈ
μμλ₯Ό μ μΈνκΈ° μν΄μλ λ€μκ³Ό κ°μ νμμ μ¬μ©ν©λλ€.
μμλͺ
CONSTANT λ°μ΄ν°νμ
:= μ΄κΈ°κ°;
μλ₯Ό λ€μ΄, λ¬Έμμ΄ μμλ₯Ό μ μΈνκ³ μ΄κΈ°κ°μ "Hello"λ‘ μ€μ νλ €λ©΄ λ€μκ³Ό κ°μ΄ μμ±ν μ μμ΅λλ€.
message CONSTANT VARCHAR2(10) := 'Hello';
μ¬κΈ°μ CONSTANT
ν€μλλ μ΄ λ³μκ° μμμμ λͺ
μν΄μ£Όλ μν μ ν©λλ€. μμλ ν λ² μ μΈνλ©΄ κ°μ λ³κ²½ν μ μκΈ° λλ¬Έμ μ΄κΈ°κ°μ λ°λμ μ€μ ν΄μ£Όμ΄μΌ ν©λλ€.
λ³μμ μμλ μ μΈλ μ΄νμ μ¬μ©λ λ κ°μ ν λΉνκ² λ©λλ€. λ€μ λ¨λ½μμ λ³μμ μμμ μ΄κΈ°ν λ° ν λΉ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
λ³μμ μμμ μ΄κΈ°ν λ° ν λΉ
λ³μμ μμλ₯Ό μ¬μ©νκΈ° μν΄μλ μ΄κΈ°ν λ° ν λΉ κ³Όμ μ κ±°μ³μΌ ν©λλ€. μ΄κΈ°νλ λ³μλ μμλ₯Ό μ μΈν λ κ°μ μ§μ νλ κ²μ μλ―Ένλ©°, ν λΉμ νλ‘κ·Έλ¨ μ€ν μ€μ λ³μλ μμμ κ°μ λμ νλ κ²μ μλ―Έν©λλ€.
λ³μμ μ΄κΈ°ν λ° ν λΉ
λ³μλ₯Ό μ΄κΈ°ννκΈ° μν΄μλ μ μΈκ³Ό λμμ κ°μ μ§μ ν΄μ£Όλ©΄ λ©λλ€. λ€μμ λ³μλ₯Ό μ μΈνκ³ μ΄κΈ°κ°μ ν λΉνλ μμμ λλ€.
num INT := 10;
λ³μμ κ°μ ν λΉνκΈ° μν΄μλ λμ
μ°μ°μ :=
λ₯Ό μ¬μ©ν©λλ€. λ€μμ λ³μμ κ°μ ν λΉνλ μμμ
λλ€.
num := 20;
λ³μλ μ¬λ¬ λ²μ κ±Έμ³μ κ°μ λ³κ²½ν μ μμΌλ―λ‘, νμμ λ°λΌμ μ¬λ¬ λ² ν λΉν μ μμ΅λλ€.
μμμ μ΄κΈ°ν λ° ν λΉ
μμλ μ μΈν λ λ°λμ μ΄κΈ°κ°μ μ§μ ν΄μΌ ν©λλ€. μμλ μ΄κΈ°ν μ΄νμλ κ°μ λ³κ²½ν μ μμΌλ―λ‘, λ³μμλ λ¬λ¦¬ ν λΉν μ μλ κ³Όμ μ΄ μμ΅λλ€. λ€μμ μμλ₯Ό μ μΈνκ³ μ΄κΈ°κ°μ ν λΉνλ μμμ λλ€.
message CONSTANT VARCHAR2(10) := 'Hello';
μμμ μ΄κΈ°κ°μ μ μΈν λ ν λ²λ§ μ§μ ν μ μμ΅λλ€. μ΄νμ κ°μ λ³κ²½νλ €κ³ νλ©΄ μ€λ₯κ° λ°μν©λλ€.
μμ λ΄μ©μ ν΅ν΄ λ³μμ μμμ μ΄κΈ°ν λ° ν λΉ λ°©λ²μ μμ보μμ΅λλ€. κ·Έλ¬λ λ³μμ μμ μ¬μ© μ μ£Όμν΄μΌ ν μ λ μμΌλ―λ‘, λ€μ λ¨λ½μμ μ΄μ λν΄ μμλ³΄κ² μ΅λλ€.
λ³μμ μμ μ¬μ© μ μ£Όμμ¬ν
λ³μμ μμλ νλ‘κ·Έλ¨μ μμ±ν λ μ€μν μν μ ν©λλ€. κ·Έλ¬λ μ¬μ©ν λ λͺ κ°μ§ μ£Όμμ¬νμ΄ μμΌλ―λ‘, μλμ λ΄μ©μ μ°Έκ³ ν΄ μ£ΌμΈμ.
λ³μ μ¬μ© μ μ£Όμμ¬ν
λ³μλ μ΄κΈ°νλμ§ μμ μνλ‘ μ¬μ©λλ©΄ μμμΉ λͺ»ν λμμ΄ λ°μν μ μμ΅λλ€. λ°λΌμ λ³μλ₯Ό μ μΈν ν, μ΄κΈ°ννλ μ΅κ΄μ κ°μ§μΈμ.
λ³μμ μ μ ν λ°μ΄ν° νμ μ μ§μ νμΈμ. λ°μ΄ν° νμ μ΄ μΌμΉνμ§ μλ κ°μ ν λΉνλ©΄ μ€λ₯κ° λ°μν μ μμ΅λλ€.
λΆνμν λ³μλ₯Ό μμ±νμ§ μλλ‘ μ£ΌμνμΈμ. νμν λ³μλ§ μ μΈνμ¬ λ©λͺ¨λ¦¬λ₯Ό μ μ½νκ³ μ½λμ κ°λ μ±μ λμΌ μ μμ΅λλ€.
μμ μ¬μ© μ μ£Όμμ¬ν
μμλ κ°μ λ³κ²½ν μ μκΈ° λλ¬Έμ, μ μΈν λ μ μ€νκ² κ²°μ ν΄μΌ ν©λλ€. λ³κ²½μ΄ νμν κ²½μ° λ³μλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
μμμ μ΄λ¦μ λλ¬Έμμ μΈλμ€μ½μ΄(
_
)λ₯Ό μ¬μ©νμ¬ μ½κΈ° μ½κ² μμ±νμΈμ. μλ₯Ό λ€μ΄,MAX_VALUE
μ κ°μ΄ λͺ νν μ΄λ¦μ μ¬μ©ν μ μμ΅λλ€.μμμλ κ°κΈμ μ΄λ©΄ 리ν°λ΄ κ°μ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. λ€λ₯Έ λ³μλ μμλ₯Ό μ°Έμ‘°νλ κ²½μ° μλνμ§ μμ κ²°κ³Όκ° λ°μν μ μμ΅λλ€.
μμ μ£Όμμ¬νμ ν΅ν΄ λ³μμ μμλ₯Ό μ¬λ°λ₯΄κ² μ¬μ©ν μ μμ΅λλ€. μ΄μ λ³μμ μμλ₯Ό νμ©νμ¬ μ€μ λ‘ νλ‘κ·Έλ¨μ μμ±νλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
λ³μμ μμμ νμ© μμ
λ³μμ μμλ νλ‘κ·Έλ¨μ μμ±ν λ μ€μν μμλ‘ μ¬μ©λ©λλ€. λ€μμ λ³μμ μμμ μ€μ νμ© μμμ λλ€.
λ³μμ νμ© μμ
DECLARE
num1 INT := 10;
num2 INT := 5;
result INT;
BEGIN
result := num1 + num2;
DBMS_OUTPUT.PUT_LINE('λ§μ
κ²°κ³Ό: ' || result);
num1 := num1 * 2;
num2 := num2 + 3;
result := num1 - num2;
DBMS_OUTPUT.PUT_LINE('λΊμ
κ²°κ³Ό: ' || result);
END;
μ μμμμ num1
κ³Ό num2
λ³μλ μ΄κΈ°κ°μΌλ‘ κ°κ° 10κ³Ό 5λ₯Ό ν λΉλ°κ³ , result
λ³μλ κ°μ ν λΉλ°μ§ μμ μνμ
λλ€. 첫 λ²μ§Έ result
μλ num1
κ³Ό num2
λ₯Ό λν κ°μ ν λΉνκ³ , λ λ²μ§Έ result
μλ num1
μμ num2
λ₯Ό λΊ κ°μ ν λΉν©λλ€. κ²°κ³Όλ DBMS_OUTPUT.PUT_LINE ν¨μλ₯Ό ν΅ν΄ μΆλ ₯λ©λλ€.
μμμ νμ© μμ
DECLARE
PI CONSTANT NUMBER := 3.141592;
radius NUMBER := 5;
area NUMBER;
BEGIN
area := PI * radius * radius;
DBMS_OUTPUT.PUT_LINE('μμ λμ΄: ' || area);
radius := 10;
area := PI * radius * radius;
DBMS_OUTPUT.PUT_LINE('λ°μ§λ¦μ΄ 10μΈ μμ λμ΄: ' || area);
END;
μ μμμμ PI
μμλ μμ£Όμ¨ κ°μ κ°μ§κ³ μμΌλ©°, radius
λ³μλ μμ λ°μ§λ¦μ λνλ
λλ€. 첫 λ²μ§Έ area
μλ μμ λμ΄λ₯Ό κ³μ°νμ¬ ν λΉνκ³ , λ λ²μ§Έ area
μλ radius
μ κ°μ΄ 10μΌλ‘ λ³κ²½λ νμ λ€μ μμ λμ΄λ₯Ό κ³μ°νμ¬ ν λΉν©λλ€. κ²°κ³Όλ DBMS_OUTPUT.PUT_LINE ν¨μλ₯Ό ν΅ν΄ μΆλ ₯λ©λλ€.
λ³μμ μμλ νλ‘κ·Έλ¨μμ μ μ°νκ³ λ€μν κ°μ λ€λ£¨λ λ° μ¬μ©λλ©°, μμ μμμ²λΌ λ€μν μ°μ°κ³Ό κ³μ°μ νμ©λ μ μμ΅λλ€. μ΄λ¬ν μμλ₯Ό ν΅ν΄ λ³μμ μμμ νμ©λ²μ μ΅νκ³ , μ€μ νλ‘κ·Έλ¨μ μμ±ν΄λ³΄μΈμ.
λκΈ