We have created a awesome theme
Far far away,behind the word mountains, far from the countries

INFO ½ÇÀü DB¸ðµ¨¸µ°ú SQL°úÁ¤

INFO

½ÇÀü DB¸ðµ¨¸µ°ú SQL°úÁ¤
Á¶È¸¼ö 416
Á¦¸ñ Chapter5_DBObject : ¿¹Á¦¸ðÀ½9
ÀÛ¼ºÀÚ °ü¸®ÀÚ
ÀÛ¼ºÀÏÀÚ 2021-12-03

¡á¿¹ 5_5_11  ||  m_sal CURSOR »ý¼º
DECLARE
 CURSOR m_sal IS
   SELECT SABUN, ENG_NAME, SALARY, JOIN_GBN_CODE
   FROM INSA
   WHERE (SALARY, JOIN_GBN_CODE) IN (SELECT MAX(SALARY) M_SAL, JOIN_GBN_CODE
                                       FROM INSA
                                       GROUP BY JOIN_GBN_CODE);
    v_SAB INSA.SABUN%TYPE;
    v_ENG INSA.ENG_NAME%TYPE;
    v_SAL INSA.SALARY%TYPE;
    v_GBN INSA.JOIN_GBN_CODE%TYPE;  
    BEGIN
    OPEN m_sal;
    LOOP
     FETCH m_sal INTO v_SAB, v_ENG, v_SAL, v_GBN;
     EXIT WHEN m_sal %NOTFOUND;
     DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------');
     DBMS_OUTPUT.PUT_LINE('SABUN: '||v_SAB||' '||'-NAME: '||v_ENG||' '||
'-SALARY: '||v_SAL||' '||'-GBN: '|| v_GBN );    
     END LOOP;
     DBMS_OUTPUT.PUT_LINE('-------------------------------------------------------------');
     CLOSE m_sal;
     END;
     /



¡á¿¹ 5_5_12  ||  DB Link »ý¼º ±ÇÇѺο©
GRANT CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK TO <USER>;



¡á¿¹ 5_5_13  ||  tnsnames.ora ÆÄÀÏ¿¡ ¿ø°Ý DB Á¢¼Ó Á¤º¸ Ãß°¡
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 000.000.0.00)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  );



¡á¿¹ 5_5_14  ||  DB Link »ý¼º
CONNECT scott/tiger

CREATE PUBLIC DATABASE LINK SEONGPD
CONNECT TO **** IDENTIFIED BY **********
USING 'XE';



¡á¿¹ 5_5_15  ||  NLS_CHARACTER üũ
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';



¡á¿¹ 5_5_16  ||  DB Link »ç¿ë Çü½Ä
SELECT * FROM <¿ø°Ý DBÅ×À̺í¸í>@<DB LINK À̸§>;



¡á¿¹ 5_5_17  ||  DB Link »ç¿ë ¿¹
INSERT INTO INSA @SEONGPD (SABUN, ENG_NAME) VALUES ('2013052901','KIM');

SELECT SABUN, ENG_NAME FROM INSA @SEONGPD WHERE SABUN='2013052901';

UPDATE INSA @SEONGPD SET ENG_NAME='PARK' WHERE SABUN='2013052901';

DELETE INSA @SEONGPD WHERE SABUN='2013052901';



¡á¿¹ 5_5_18  ||  SYNONYMÀ» ÀÌ¿ëÇÑ DB Link »ç¿ë
CREATE SYNONYM SEONG FOR INSA@SEONGPD;



¡á¿¹ 5_5_19  ||  DB Link »èÁ¦
____DROP DATABASE____ LINK <DB LINK À̸§>;



¡á¿¹ 5_5_20  ||  JOB »ý¼º °úÁ¤
CREATE TABLE JOB_TAB(           ----Table »ý¼º
TEST_JOB  VARCHAR2(25)
);

CREATE OR REPLACE PROCEDURE p_JOB       ----PROCEDURE »ý¼º
IS
BEGIN
   INSERT INTO JOB_TAB(TEST_JOB)
   VALUES (TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'));
   COMMIT;
END p_JOB;
/

DECLARE                                    ----JOB »ý¼º
   JOBNO NUMBER;
BEGIN
   DBMS_JOB.SUBMIT(JOBNO, 'p_JOB;', SYSDATE, 'SYSDATE+1/24/6');
END;
/



¡á¿¹ 5_5_21  ||  MAX_SAL_LEAD METERIALIZED VIEW »ý¼º
CREATE MATERIALIZED VIEW MAX_SAL_LEAD
BUILD IMMEDIATE
REFRESH FORCE
START WITH SYSDATE
NEXT SYSDATE+(1/24/1)
ENABLE QUERY REWRITE
AS
SELECT SABUN, ENG_NAME,
         NVL(JOIN_DAY,SUBSTR(SABUN,1,8)) AS JOIN_DAY,
         SALARY, JOIN_GBN_CODE
FROM INSA
WHERE (JOIN_GBN_CODE, SALARY) IN
(SELECT JOIN_GBN_CODE, MAX(SALARY)
 FROM INSA
 GROUP BY JOIN_GBN_CODE);
                                   
¡á¿¹ 5_5_22  ||  ÀÏ¹Ý SQLÀ» ÅëÇÑ µ¥ÀÌÅÍ Á¶È¸
SELECT SABUN, ENG_NAME,
         NVL(JOIN_DAY,SUBSTR(SABUN,1,8)) AS JOIN_DAY,
         SALARY, JOIN_GBN_CODE
FROM INSA
WHERE (JOIN_GBN_CODE, SALARY) IN
(SELECT JOIN_GBN_CODE, MAX(SALARY)
 FROM INSA
 GROUP BY JOIN_GBN_CODE)
ORDER BY SALARY DESC;



¡á¿¹ 5_5_23  ||  MAX_SAL_LEAD VIEW ÅëÇÑ µ¥ÀÌÅÍ Á¶È¸
SELECT * FROM MAX_SAL_LEAD;



¡á¿¹ 5_5_24  ||  INSA Å×ÀÌºí ¼öÁ¤ ÈÄ METERIALIZED VIEW µ¥ÀÌÅÍ È®ÀÎ
UPDATE INSA SET SALARY=6000 WHERE SABUN='2013010122';

÷ºÎÆÄÀÏ