레이블이 PL/SQL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 PL/SQL인 게시물을 표시합니다. 모든 게시물 표시

오라클 PL/SQL을 처음으로 해보았다!!

안녕하세요

오늘 처음으로 일반적인 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);





=======================================================