안녕하세요
오늘 처음으로 일반적인 SQL이 아닌
PL/SQL을 처음으로 했습니다.
자바, C, PHP, C++ 같은 프로그래밍만 해봐서 신기했습니다.
오늘은 아주 짧게 글 쓰고 내일부터 길게 쓰겠습니다
=========================================================
SET SERVEROUTPUT ON; -- 이걸 켜줘야 실행결과가 나옴
-- 익명 블럭
DECLARE
--선언부(변수 선언)
I_MSG VARCHAR2(50);
BEGIN
I_MSG := 'HELLO ORACLE~'; -- PL/SQL의 대입 연산자는 ':=' 이다
DBMS_OUTPUT.PUT_LINE(I_MSG);
END;
실행 결과
=======================================================
변수 2개를 선언하세요
1시간전 시간을 변수1에 담고 3시간 후 시간을 변수2에 담아 출력하세요
DECLARE
VDATE1 TIMESTAMP;
VDATE2 TIMESTAMP;
BEGIN
SELECT SYSTIMESTAMP - 1/24 INTO VDATE1 FROM DUAL;
SELECT SYSTIMESTAMP + 3/24 INTO VDATE2 FROM DUAL;
DBMS_OUTPUT.PUT_LINE('한 시간 전 :'||VDATE1);
DBMS_OUTPUT.PUT_LINE('세 시간 후 :'||VDATE2);
END;
=======================================================
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE EMP_INFO -- 없으면 생성하고 있으면 덮어쓰자
(NUM IN NUMBER)
IS
VNO NUMBER;
VNAME VARCHAR2(20);
VSAL NUMBER;
BEGIN
SELECT EMPNO, ENAME, SAL
INTO VNO, VNAME, VSAL FROM EMP
WHERE EMPNO=NUM; -- 파라미터로 받을 NUM
DBMS_OUTPUT.PUT_LINE('사 번:'||VNO);
DBMS_OUTPUT.PUT_LINE('사원명:'||VNAME);
DBMS_OUTPUT.PUT_LINE('급여 :'||VSAL);
END;
위의 꺼를 먼저 실행하고 아래의 명령문을 실행하세요.
EXECUTE EMP_INFO(7369);
=======================================================