반응형


MariaDB JSON 형식 데이터 사용 : MariaDB 10.2 부터 가능

참고 사이트

https://mariadb.com/kb/en/library/json-functions/
https://mariadb.com/resources/blog/json-with-mariadb-10-2/
https://bstar36.tistory.com/359


1. 버전 확인
    MariaDB [(test)]> select @@version;
    +-----------------+
    | @@version       |
    +-----------------+
    | 10.3.17-MariaDB |
    +-----------------+
    1 row in set (0.000 sec)

2. JSON 데이터 타입 지원(내부적으로 LongTEXT로 저장)    
    MariaDB [test]> create table json_test (id int, data json);
    Query OK, 0 rows affected (0.015 sec)

    MariaDB [test]> show create table json_test;
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table     | Create Table                                                                                                                                                                                  |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | json_test | CREATE TABLE `json_test` (
      `id` int(11) DEFAULT NULL,
      `data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.000 sec)


3. JSON 데이터 조작
   A. json_object 함수를 이용하여 key,value 형식으로 Insert
    MariaDB [test]> insert into json_test values (1 , json_object('Name' , 'Kil-Dong, Hong' , 'Sex' , 'M' , 'Phone' , '010-1234-5678')) ;
    Query OK, 1 row affected (0.003 sec)
    
    MariaDB [test]> commit;
    Query OK, 0 rows affected (0.000 sec)
    
    MariaDB [test]> select * from json_test ;
    +------+------------------------------------------------------------------+
    | id   | data                                                             |
    +------+------------------------------------------------------------------+
    |    1 | {"Name": "Kil-Dong, Hong", "Sex": "M", "Phone": "010-1234-5678"} |
    +------+------------------------------------------------------------------+
    1 row in set (0.000 sec)

   B. 특정 key 값만 조회 하고자 할때 json_value 함수를 사용 
   
    MariaDB [test]> select id , json_value(data,'$.Name') As Name , json_value(data,'$.Phone') as Phone from json_test ;
    +------+----------------+---------------+
    | id   | Name           | Phone         |
    +------+----------------+---------------+
    |    1 | Kil-Dong, Hong | 010-1234-5678 |
    +------+----------------+---------------+
    1 row in set (0.001 sec)
    
    C. 특정 하나 Key 값을 update 하고자 할때,  json_replace 함수를 사용
    
    ※ 단, 이름은 중복날 수 있으니 Unique 값으로 비교하는 것을 추천 (사용방법 안내)
    MariaDB [test]> update json_test set data = json_replace(data,'$.Phone','010-2345-6789') where json_value(data,'$.Name') = 'Kil-Dong, Hong';
    Query OK, 1 row affected (0.002 sec)
    Rows matched: 1  Changed: 1  Warnings: 0


    MariaDB [test]> select id , json_value(data,'$.Name') As Name , json_value(data,'$.Phone') as Phone from json_test ;
    +------+----------------+---------------+
    | id   | Name           | Phone         |
    +------+----------------+---------------+
    |    1 | Kil-Dong, Hong | 010-2345-6789 |
    +------+----------------+---------------+
    1 row in set (0.000 sec)
    
    
    Object 값 자체로 추출("" 형태)
    MariaDB [test]> SELECT JSON_EXTRACT(data, '$.Name') from json_test;
    +------------------------------+
    | JSON_EXTRACT(data, '$.Name') |
    +------------------------------+
    | "Su, Peng"                   |
    | "Dori Go"                    |
    | "DaHan, Wi "                 |
    | NULL                         |
    | NULL                         |
    +------------------------------+
    5 rows in set (0.000 sec)
    
    
    MariaDB [test]> SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.Name')) from json_test;
    +--------------------------------------------+
    | JSON_UNQUOTE(JSON_EXTRACT(data, '$.Name')) |
    +--------------------------------------------+
    | Su, Peng                                   |
    | Dori Go                                    |
    | DaHan, Wi                                  |
    | NULL                                       |
    | NULL                                       |
    +--------------------------------------------+
    5 rows in set (0.000 sec)


    
    D. 하나 이상의 Key 값을 변경할 때는 json_set 함수 사용

    MariaDB [test]> update json_test set data = json_set(data,'$.Phone','010-3456-7890', '$.Name','Su, Peng') where id = 1 ;
    Query OK, 1 row affected (0.001 sec)
    Rows matched: 1  Changed: 1  Warnings: 0

    MariaDB [test]> select id , json_value(data,'$.Name') As Name , json_value(data,'$.Phone') as Phone from json_test ;
    +------+----------+---------------+
    | id   | Name     | Phone         |
    +------+----------+---------------+
    |    1 | Su, Peng | 010-3456-7890 |
    +------+----------+---------------+
    1 row in set (0.000 sec)

 
    E. Json 형태가 추가되어도 입력이 가능
    insert into json_test values (2 , json_object('Name' , 'Dori Go' , 'Sex' , 'F' , 'Phone' , '02-123-4567' , 'Birth', '2000-01-01')) ; 
    
    MariaDB [test]> insert into json_test values (2 , json_object('Name' , 'Dori Go' , 'Sex' , 'F' , 'Phone' , '02-123-4567' , 'Birth', '2000-01-01')) ;
    Query OK, 1 row affected (0.001 sec)
    
    MariaDB [test]> commit;
    Query OK, 0 rows affected (0.000 sec)
    
    MariaDB [test]> select * from json_test;
    +------+--------------------------------------------------------------------------------+
    | id   | data                                                                           |
    +------+--------------------------------------------------------------------------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                     |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"} |
    +------+--------------------------------------------------------------------------------+
    2 rows in set (0.000 sec)

    F. json 데이터 값의 Like 검색
    
    MariaDB [test]> select count(*) from json_test where json_value(data,'$.Phone') like '02%' ;
    +----------+
    | count(*) |
    +----------+
    |        1 |
    +----------+
    1 row in set (0.000 sec)
     
    G. json 데이터 타입의 key를 가상 컬럼을 생성 후 Index 작업 가능
    
    - 테이블 변경(가상 컬럼 추가)
    MariaDB [test]> alter table json_test add phone varchar(20) as (json_value(data,'$.phone')) ;
    Query OK, 0 rows affected (0.341 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    MariaDB [test]> select * from json_test limit 1 ;
    +------+------------------------------------------------------------+-------+
    | id   | data                                                       | phone |
    +------+------------------------------------------------------------+-------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"} | NULL  |
    +------+------------------------------------------------------------+-------+
    1 row in set (0.000 sec)

    현재 화면에서 데이터가 안나오는 이유는 Key의 Phone은 P가 대문자 생성시에는 소문자로 만들었음
    삭제 후 다시 추가

    MariaDB [test]> alter table json_test drop phone;
    Query OK, 0 rows affected (0.009 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    MariaDB [test]>  select * from json_test limit 1 ;
    +------+------------------------------------------------------------+
    | id   | data                                                       |
    +------+------------------------------------------------------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"} |
    +------+------------------------------------------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> alter table json_test add phone varchar(20) as (json_value(data,'$.Phone')) ;
    Query OK, 0 rows affected (0.012 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    MariaDB [test]>  select * from json_test;
    +------+--------------------------------------------------------------------------------+---------------+
    | id   | data                                                                           | phone         |
    +------+--------------------------------------------------------------------------------+---------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                     | 010-3456-7890 |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"} | 02-123-4567   |
    +------+--------------------------------------------------------------------------------+---------------+
    2 rows in set (0.000 sec)
    
       
    - 인덱스 생성
    key 값을 기준으로 가상 생성된 컬럼에 index를(ix_json_test_01)  추가
    MariaDB [test]> create index ix_json_test_01 on json_test(phone) ;
    Query OK, 0 rows affected (0.021 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    explain 을 통해 plan을 조회합니다.
    MariaDB [test]> explain select count(*) from json_test where Phone like '02%' ;
    +------+-------------+-----------+-------+-----------------+-----------------+---------+------+------+--------------------------+
    | id   | select_type | table     | type  | possible_keys   | key             | key_len | ref  | rows | Extra                    |
    +------+-------------+-----------+-------+-----------------+-----------------+---------+------+------+--------------------------+
    |    1 | SIMPLE      | json_test | index | ix_json_test_01 | ix_json_test_01 | 63      | NULL |    2 | Using where; Using index |
    +------+-------------+-----------+-------+-----------------+-----------------+---------+------+------+--------------------------+
    1 row in set (0.000 sec)

    H. Json Object를 사용하지 않은 Insert
    MariaDB [test]> insert into json_test(id, data) values (3, '{"Name": "DaHan, Wi ", "Sex": "M", "Phone": "010-9876-5432", "Birth": "1999-12-31"}');
    Query OK, 1 row affected (0.003 sec)

    MariaDB [test]> select * from json_test;
    +------+-------------------------------------------------------------------------------------+---------------+
    | id   | data                                                                                | phone         |
    +------+-------------------------------------------------------------------------------------+---------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                          | 010-3456-7890 |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"}      | 02-123-4567   |
    |    3 | {"Name": "DaHan, Wi ", "Sex": "M", "Phone": "010-9876-5432", "Birth": "1999-12-31"} | 010-9876-5432 |
    +------+-------------------------------------------------------------------------------------+---------------+
    3 rows in set (0.000 sec)


4. Json 관련 함수들
   관련 링크 :  https://mariadb.com/kb/en/library/json-functions/
   
   - JSON_Query와 JSON_VALUE 차이
     아래와 같이 임시로 json 변수를 선언하고 json 데이터를 저장합니다.
     
    MariaDB [test]> SET @json='{ "x": [0,1], "y": "[0,1]", "z": "Monty" }';
    Query OK, 0 rows affected (0.001 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$'), JSON_VALUE(@json,'$');
    +--------------------------------------------+-----------------------+
    | JSON_QUERY(@json,'$')                      | JSON_VALUE(@json,'$') |
    +--------------------------------------------+-----------------------+
    | { "x": [0,1], "y": "[0,1]", "z": "Monty" } | NULL                  |
    +--------------------------------------------+-----------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.x'), JSON_VALUE(@json,'$.x');
    +-------------------------+-------------------------+
    | JSON_QUERY(@json,'$.x') | JSON_VALUE(@json,'$.x') |
    +-------------------------+-------------------------+
    | [0,1]                   | NULL                    |
    +-------------------------+-------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.y'), JSON_VALUE(@json,'$.y');
    +-------------------------+-------------------------+
    | JSON_QUERY(@json,'$.y') | JSON_VALUE(@json,'$.y') |
    +-------------------------+-------------------------+
    | NULL                    | [0,1]                   |
    +-------------------------+-------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.z'), JSON_VALUE(@json,'$.z');
    +-------------------------+-------------------------+
    | JSON_QUERY(@json,'$.z') | JSON_VALUE(@json,'$.z') |
    +-------------------------+-------------------------+
    | NULL                    | Monty                   |
    +-------------------------+-------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.x[0]'), JSON_VALUE(@json,'$.x[0]');
    +----------------------------+----------------------------+
    | JSON_QUERY(@json,'$.x[0]') | JSON_VALUE(@json,'$.x[0]') |
    +----------------------------+----------------------------+
    | NULL                       | 0                          |
    +----------------------------+----------------------------+
    1 row in set (0.000 sec)

    - JSON_ARRAY 함수
      10.2.3 버전부터 추가됨
      MariaDB [test]> SELECT Json_Array(56, 3.1416, 'My name is "Foo"', NULL);
    +--------------------------------------------------+
    | Json_Array(56, 3.1416, 'My name is "Foo"', NULL) |
    +--------------------------------------------------+
    | [56, 3.1416, "My name is \"Foo\"", null]         |
    +--------------------------------------------------+
    1 row in set (0.000 sec)


    MariaDB [test]> insert into json_test(id, data) values (4, JSON_ARRAY("Name","Ra, Ro ", "Sex", "F", "Phone", "010-1122-3344", "Birth", "1990-06-01"));
    Query OK, 1 row affected (0.003 sec)
 
     
    MariaDB [test]> select * from json_test;
    +------+-------------------------------------------------------------------------------------+---------------+
    | id   | data                                                                                | phone         |
    +------+-------------------------------------------------------------------------------------+---------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                          | 010-3456-7890 |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"}      | 02-123-4567   |
    |    3 | {"Name": "DaHan, Wi ", "Sex": "M", "Phone": "010-9876-5432", "Birth": "1999-12-31"} | 010-9876-5432 |
    |    4 | ["Name", "Ra, Ro ", "Sex", "F", "Phone", "010-1122-3344", "Birth", "1990-06-01"]    | NULL          |
    +------+-------------------------------------------------------------------------------------+---------------+
    4 rows in set (0.000 sec)

    위의 id 4번 값은 아래에 보듯이 Type이 맞지 않기 때문에 phone값이 정상 인식 되지 않았음.
    
    MariaDB [test]> select json_type(data) from json_test;
    +-----------------+
    | json_type(data) |
    +-----------------+
    | OBJECT          |
    | OBJECT          |
    | OBJECT          |
    | ARRAY           |
    +-----------------+
    4 rows in set (0.001 sec)

    - 함수들 간략한 설명
    2
    JSON_QUERY와 JSON_VALUE의 차이점
        JSON_QUERY와 JSON_VALUE의 예제와 비교합니다.
    JSON_ARRAY
        나열된 값이 포함 된 JSON 배열을 반환합니다.
    JSON_ARRAY_APPEND
        JSON 문서 내에서 주어진 배열의 끝에 값을 추가합니다.
    JSON_ARRAY_INSERT
        JSON 문서에 값을 삽입합니다.
    JSON_COMPACT
        불필요한 모든 공간을 제거하여 json 문서가 가능한 한 짧습니다.
    JSON_CONTAINS
        지정된 JSON 문서 또는 문서 내의 지정된 경로에서 값을 찾을 수 있는지 여부
    JSON_CONTAINS_PATH
        지정된 JSON 문서에 지정된 경로의 데이터가 있는지 여부를 나타냅니다.
    JSON_DEPTH
        JSON 문서의 최대 깊이.
    JSON_DETAILED
        중첩 구조를 강조하는 가장 이해하기 쉬운 방식으로 JSON을 나타냅니다.
    JSON_EXISTS
        지정된 데이터에 지정된 JSON 값이 있는지 확인합니다. 
    JSON_EXTRACT
        JSON 문서에서 데이터를 추출합니다.
    JSON_INSERT
        JSON 문서에 데이터를 삽입합니다.
    JSON_KEYS
        JSON 객체의 최상위 값에서 키를 반환하거나 경로에서 최상위 키를 반환합니다.
        MariaDB [test]> select id, json_keys(data) from json_test;
        +------+-----------------------------------+
        | id   | json_keys(data)                   |
        +------+-----------------------------------+
        |    1 | ["Name", "Sex", "Phone"]          |
        |    2 | ["Name", "Sex", "Phone", "Birth"] |
        |    3 | ["Name", "Sex", "Phone", "Birth"] |
        |    4 | NULL                              |
        |    5 | NULL                              |
        +------+-----------------------------------+
        5 rows in set (0.000 sec)

    JSON_LENGTH
        JSON 문서의 길이 또는 문서 내 값의 길이를 반환합니다.
    JSON_LOOSE
        더 읽기 쉽게 보이도록 JSON 문서에 공백을 추가합니다.
    JSON_MERGE
        주어진 JSON 문서를 병합합니다.
    JSON_MERGE_PATCH
        주어진 JSON 문서의 RFC 7396 호환 병합
    JSON_MERGE_PRESERVE
        JSON_MERGE의 동의어
    JSON_OBJECT
        주어진 키 / 값 쌍을 포함하는 JSON 객체를 반환합니다. 
    JSON_QUERY
        JSON 문서가 주어지면 경로로 지정된 객체 또는 배열을 반환합니다.
    JSON_QUOTE
        문자열을 JSON 값으로 인용합니다.
    JSON_REMOVE
        JSON 문서에서 데이터를 제거합니다.
    JSON_REPLACE
        JSON 문서에서 기존 값을 바꿉니다.
    JSON_SEARCH
        JSON 문서 내에서 지정된 문자열의 경로를 반환합니다.
    JSON_SET
        JSON 문서에 데이터를 업데이트하거나 삽입합니다.
    JSON_TYPE
        JSON 값의 유형을 반환합니다.
    JSON_UNQUOTE
        JSON 값을 인용 해제하여 문자열을 반환합니다. 
    JSON_VALID
        값이 유효한 JSON 문서인지 여부 
    JSON_VALUE
        JSON 문서가 주어지면 지정된 스칼라를 반환합니다.
     

반응형

'Database > MYSQL' 카테고리의 다른 글

MariaDB connect 설치  (0) 2019.11.07
MariaDB 테이블 백업 및 복구  (0) 2019.11.01
MariaDB 우편번호 Import 하기  (0) 2019.11.01
MariaDB SHA2 512 방식으로 암호화 예제  (0) 2019.10.25
Mysql & MariaDB 튜닝 쉘  (0) 2019.08.14
반응형

# INSTANCE NAME/ DB NAME을 확인하고 싶은데 권한이 없는 일반 유저가 확인하고 싶을때 가능
 - SYS_CONTEXT 함수는 세션정보를 얻어오는 함수 입니다.
 - USERENV : 현재 세션의 환경정보를 반환는 네임스페이스 입니다.
   SYS_CONTEXT ('namespace', 'parameter')

Oracle Docs : http://docs.oracle.com/cd/E11882_01/olap.112/e23381/row_functions079.htm


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
-- DB 이름
SELECT SYS_CONTEXT('userenv', 'db_name') db_name FROM DUAL;
DB_NAME
------------
oracle3
 
-- Instance 이름
SELECT SYS_CONTEXT('userenv', 'instance_name') instance_name FROM DUAL;
INSTANCE_NAME
------------------
oraSub3
 
-- 접속자 IP 주소
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') "My IP Address"  FROM DUAL;
 
-- DBA 여부
SELECT SYS_CONTEXT('USERENV','ISDBA') isdba FROM DUAL;
ISDBA
-------
TRUE
 
 
SELECT SYS_CONTEXT('USERENV','TERMINAL') terminal FROM DUAL;
SELECT SYS_CONTEXT('USERENV','LANGUAGE') language FROM DUAL;
SELECT SYS_CONTEXT('USERENV','SESSIONID') sessionid FROM DUAL;
SELECT SYS_CONTEXT('USERENV','INSTANCE') instance FROM DUAL;
SELECT SYS_CONTEXT('USERENV','ENTRYID') entryid FROM DUAL;
SELECT SYS_CONTEXT('USERENV','ISDBA') isdba FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NLS_TERRITORY') nls_territory FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NLS_CURRENCY') nls_currency FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NLS_CALENDAR') nls_calendar FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') nls_date_format FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE') nls_date_language FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NLS_SORT') nls_sort FROM DUAL;
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') current_user FROM DUAL;
SELECT SYS_CONTEXT('USERENV','CURRENT_USERID') current_userid FROM DUAL;
SELECT SYS_CONTEXT('USERENV','SESSION_USER') session_user FROM DUAL;
SELECT SYS_CONTEXT('USERENV','SESSION_USERID') session_userid FROM DUAL;
SELECT SYS_CONTEXT('USERENV','PROXY_USER') proxy_user FROM DUAL;
SELECT SYS_CONTEXT('USERENV','PROXY_USERID') proxy_userid FROM DUAL;
SELECT SYS_CONTEXT('USERENV','DB_DOMAIN') db_domain FROM DUAL;
SELECT SYS_CONTEXT('USERENV','DB_NAME') db_name FROM DUAL;
SELECT SYS_CONTEXT('USERENV','HOST') host FROM DUAL;
SELECT SYS_CONTEXT('USERENV','OS_USER') os_user FROM DUAL;
SELECT SYS_CONTEXT('USERENV','EXTERNAL_NAME') external_name FROM DUAL;
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address FROM DUAL;
SELECT SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') network_protocol FROM DUAL;
SELECT SYS_CONTEXT('USERENV','BG_JOB_ID') bg_job_id FROM DUAL;
SELECT SYS_CONTEXT('USERENV','FG_JOB_ID') fg_job_id FROM DUAL;
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE') FROM DUAL;


출처 : http://develop.sunshiny.co.kr/681


반응형
반응형


출처 : http://emple.net/appl_util/21500386

작성자 : 보디가루 님


우선 어플을 3개나 준비했습니다. ^^

조금은 귀잖은 설정도 해주어야

밖에서도 볼수있습니다.

 

1. ip Wedcam

    이라는 폰으로 실시간 영상(cctv)을 찍어서 와이파이로 뿌려주는 어플입니다.

 

사용법/설명   http://blog.daum.net/limsungy/117

 

 

2. ip Cam viewer pro

    이건 ip Wedcam 으로 찍힌 영상으로 폰으로 받아 보는 어플입니다.

    추가 기능 플레쉬 온오프 ip Wedcam 의 소리를 전달 받을수 있음 ??ㅋㅋ

    쉽게 말해 소리와 영상을 전달 받습니다.

 

사용법/설명

  http://lireview.tistory.com/1951

 

 

3. tinyCam monitor pro

   이건 위 어플과 같이 영상을 받고 ..또...

   내가 말하는 소리를 ip Wedcam 으로 전송해 줍니다.

   내가 폰으로 하는 말을 저쪽에 전달하는 거지요..^^

 

사용법/설명

   http://blog.kch.wo.tc/1354

 

 

자..이제 이것들만 있어도.. 같은 와이파이 망내서선 찍고 볼수 있습니다.

 

이제 외출 해야죠.. 밖에서 보는건 조금의 설정이 필요합니다.

 

일일이 다 설명하기 힘드니까.. ^^ 블러거 님들의 도움을 받겠습니다.

 

 

 

 

포트 포워딩

 

ip Wedcam 의 포트를 외부로 이여주는 설정 입니다.

 

http://fulldrunken.tistory.com/106

 

 

DDNS 설정 유동ip인 내 공유기 주소를   XXXXX.iptime.org 의 형태로..도메인화 하는겁니다.

 

http://blog.naver.com/dmstnr187?Redirect=Log&logNo=10125198091

 

이거 2가지를 하시면 밖에서도..cctv보다 더좋은 화질로.. 내가 볼수도 들을수도 내말을 전달할수도 있습니다.

 

 

뽀너스.... iptime wol 기능을 쓰시는 분들은 설정이 다되어 있으니까.. 쉬울 껍니다.

여기까지 하셨으면 고생하신김에 ..

 

WOL 기능 밖에서 내컴터를 켤수 있는 기능 마켓에서 iptime wol 어플 받으셔서 사용하시면 편합니다.

 

http://pairh.blog.me/10129648958 

 

 

헉... 쓰다 보니 ㅡㅡ 무지 어럽게 되어 버렸네요..

 

그림도 없고.. 저질 글이 되어 버린듯 ..ㅜㅜ

 

죄송합니다. 나중에 시간많을때는 좀더 이뿌고 성의 있게 쓸께요...ㅜㅜ


암튼 도움 되시는 분들에게 도움 되실듯 애견 / 아기들 키우스는 분들에게 짱~입니다.

 

여러분의 추천과 답글은 여러분과 저에게 포인트와 힘이 됩니다. ^^

반응형
반응형


후암..


간만에 설정하려고 하니 뭐가 이리 복잡 -_-...


정확한 자료도 없고...


다음과 같이 정리함.


참고 :http://www.tecmint.com/setup-samba-server-using-tdbsam-backend-on-rhel-centos-6-3-5-8-and-fedora-17-12/


1 단계 준비 노트

 서버의 호스트 명 tecmint 이며 IP는 172.16.25.126 임


2. SELinux 설정을 끔

 다음과 같은 명령으로 설정/비설정 확인 가능함

 ※ 강화된 보안설정으로 작업시 불편이 많다... 대외적(공용망 등 서비스 상태가 아닌 내부용이라면 끄고 설정하는것이 편하다)


 아래는 설정된 상태

 # selinuxenabled && echo enabled || echo disabled
enabled


RHEL 계열은 /CentOS/Fedora 이며 /etc/selinux/config를 에디터로 연다.

vi /etc/selinux/config


SELINUX=enabled 설정을 SELINUX=disabled 설정으로 바꾸고 리부팅한다.



# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 


3 단계 재부팅

# init 6


4 단계 삼바 설치

# yum install samba samba-common cups-libs samba-client


5 단계 tdbsam Backend 로 삼바 설정하기

# vi /etc/samba/smb.conf


global 설정 부분

 [global] 

# 워크그룹이름은 맘대로 정한다.

workgroup = WORKGROUP


# 윈도우에서 보이는 서버 이름

netbios name = FILEServer


# 접근을 허락할 아이피 범위 (B Class 까지는 층의 변화가 없음)

hosts allow = 172.16.


# 언어셋 설정

unix charset = UTF-8

dos charset = 949

smb port = 139

server string = Public Sector Business 3 Team


# 특정 이더넷 카드만 지원

# interfaces = eth0


## 특정 계정만 접근시키고 싶을 때

# 1. smbpasswd 를 통한 계정 추가 방식

security = user

passdb backend = tdbsam



6 단계 공유 디렉토리 생성

# mkdir -p /share/20130121

# chown -R root:users /share/20130121

# chmod -R 775 /share/20130121


7 단계 공유 디렉토리 지정

공유 폴더 지정 부분

# vi /etc/samba/smb.conf

project 명으로 공유 

* 네트워크 상에서 폴더 정보가 보일수 있도록 browseable 를 yes로 함.

 [tecmintusers]

        comment = Testproject

        path = /share/20130121

        valid users=@users

        force group=users

        create mask = 0660

        directory mask = 0771

        writable = yes

        browseable = yes


        

8 단계 재부팅시 삼바가 기동 되도록 설정
# chkconfig --list 235 smb on

9 단계 삼바 재시작
# /etc/init.d/smb restart


or

# service smb restart

10 단계 삼바 사용자 생성
# useradd project -G users (users 그룹에 project 사용자 생성)
# passwd project (project 계정의 비밀번호 설정 -> 로그인 비밀번호 이며 삼바 비번과는 다름)

삼바 비밀번호 설정
# smbpasswd -a project (project의 삼바 비밀번호를 입력하여 확인한다)

*** 참고
사용자 추가 / 삭제 / 중지
# smbpasswd -a 계정 : 계정 추가
# smbpasswd -x 계정 : 계정 삭제
# smbpasswd -d 계정 : 계정 중지
-> 위 작업후 삼바 재시작 필요함.

11 단계 삼바 공유 검증
# smbclient -L tecmint (즉 서버 명으로 접근되는지 확인 명령)
  비밀번호 입력하라고 하면 엔터 땅!

- 공유 폴더 접근 되는지 확인
# smbclinet -L //tecmint/project -U project (위의 생성 계정)
비밀번호 입력(smbpasswd 를 통해 입력한 비밀번호 입력)
정보 좌악..

12 단계 윈도우즈에서 삼바서버로 로그인하기
\\172.16.25.126\project 자신의 local 폴더와
\\172.16.25.126\tecmintusers 의 공유 폴더 접근이 가능하다.

** 참고로 \\172.16.25.126을 접근했을 때 파일이 아닌 브라우져 상에 보여지고 싶다면
/etc/samba/smb.conf 파일에 공유 옵션에 (7단계 참고) browseable 를 yes로 함.

더 자세한 정보는 www.samba.org 를 통해 확인 가능함.



반응형

'OS > Centos' 카테고리의 다른 글

Centos 7 서버 설정 하기  (0) 2019.04.17
VirtualBox 에서 Centos 7 초기 설치 후 설정하기  (0) 2019.03.07
Centos 6.3 에서 VNC 설치 하기  (0) 2013.01.21
CENTOS 5 버전의 SSH 관련 버그 오류  (0) 2010.10.05
TAR 절대 경로  (0) 2009.07.03
반응형

 

내 컴퓨터 윈도우 7 설치 가능한지 확인하는

 

Windows 7 업그레이드 관리자 임...

 

다운로드 받아서 설치가능한 사항과 항목이 되는지 검사 !

 

 

 

http://www.microsoft.com/ko-kr/download/details.aspx?id=20

반응형
반응형

오늘 불현듯...

User Define Cursor 에 대한 부분이 궁금해 졌다...

자바에서 오라클 패키지 호출하여 커서값을 반환하여 자유 스럽게 사용했는데

그 커서 값을 오라클에서 받아서 해볼까 하는...

사실 cursor is 구문이라던지 직접 사용했지

그동안 cursor 반환은 무관심 했었다..

방법은...

즉,  커서 out 값에  l_cursor에 받아와서

3개의 select 한 값을 return 하는데... 각 값들의 속성을 l_ename, l_empno, l_deptno 로 fetch 하여 받아가지고 옴...

참고용

SET SERVEROUTPUT ON SIZE 1000000
DECLARE
  TYPE REF_CUR IS REF CURSOR;
  l_cursor REF_CUR;
  l_ename   emp.ename%TYPE;
  l_empno   emp.empno%TYPE;
  l_deptno  emp.deptno%TYPE;
BEGIN
  get_emp_rs (p_deptno    => 30,
              p_recordset => l_cursor);
            
  LOOP 
    FETCH l_cursor
    INTO  l_ename, l_empno, l_deptno;
    EXIT WHEN v_cursor%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(l_ename || ' | ' || l_empno || ' | ' || l_deptno);
  END LOOP;
  CLOSE l_cursor;
END;
/


출처 :  http://www.oracle-base.com/articles/misc/UsingRefCursorsToReturnRecordsets.php 




Using Ref Cursors To Return Recordsets

Since Oracle 7.3 the REF CURSOR type has been available to allow recordsets to be returned from stored procedures and functions. Oracle 9i introduced the predefined SYS_REFCURSOR type, meaning we no longer have to define our own REF CURSOR types. The example below uses a ref cursor to return a subset of the records in the EMP table.

The following procedure opens a query using a SYS_REFCURSOR output parameter. Notice the cursor is not closed in the procedure. It is up to the calling code to manage the cursor once it has been opened.

CREATE OR REPLACE
PROCEDURE get_emp_rs (p_deptno    IN  emp.deptno%TYPE,
                      p_recordset OUT SYS_REFCURSOR) AS 
BEGIN 
  OPEN p_recordset FOR
    SELECT ename,
           empno,
           deptno
    FROM   emp
    WHERE  deptno = p_deptno
    ORDER BY ename;
END GetEmpRS;
/

The resulting cursor can be referenced from PL/SQL as follows.

SET SERVEROUTPUT ON SIZE 1000000
DECLARE
  l_cursor  SYS_REFCURSOR;
  l_ename   emp.ename%TYPE;
  l_empno   emp.empno%TYPE;
  l_deptno  emp.deptno%TYPE;
BEGIN
  get_emp_rs (p_deptno    => 30,
              p_recordset => l_cursor);
            
  LOOP 
    FETCH l_cursor
    INTO  l_ename, l_empno, l_deptno;
    EXIT WHEN v_cursor%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(l_ename || ' | ' || l_empno || ' | ' || l_deptno);
  END LOOP;
  CLOSE l_cursor;
END;
/

The cursor can be used as an ADO Recordset.

Dim conn, cmd, rs

Set conn = Server.CreateObject("adodb.connection")
conn.Open "DSN=TSH1;UID=scott;PWD=tiger"

Set cmd = Server.CreateObject ("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "get_emp_rs"
cmd.CommandType = 4 'adCmdStoredProc

Dim param1
Set param1 = cmd.CreateParameter ("deptno", adInteger, adParamInput)
cmd.Parameters.Append param1
param1.Value = 30

Set rs = cmd.Execute

Do Until rs.BOF Or rs.EOF
  -- Do something
  rs.MoveNext
Loop

rs.Close
conn.Close
Set rs     = nothing
Set param1 = nothing
Set cmd    = nothing
Set conn   = nothing

The cursor can also be referenced as a Java ResultSet.

import java.sql.*;
import oracle.jdbc.*;

public class TestResultSet  {
  public TestResultSet() {
    try {
      DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
      Connection conn = DriverManager.getConnection("jdbc:oracle:oci:@w2k1", "scott", "tiger");
      CallableStatement stmt = conn.prepareCall("BEGIN get_emp_rs(?, ?); END;");
      stmt.setInt(1, 30); // DEPTNO
      stmt.registerOutParameter(2, OracleTypes.CURSOR); //REF CURSOR
      stmt.execute();
      ResultSet rs = ((OracleCallableStatement)stmt).getCursor(2);
      while (rs.next()) {
        System.out.println(rs.getString("ename") + ":" + rs.getString("empno") + ":" + rs.getString("deptno")); 
      }
      rs.close();
      rs = null;
      stmt.close();
      stmt = null;
      conn.close();
      conn = null;
    }
    catch (SQLException e) {
      System.out.println(e.getLocalizedMessage());
    }
  }

  public static void main (String[] args) {
    new TestResultSet();
  }
}
If you are using a version of Oracle before 9i, then create the following package and replace any references to SYS_REFCURSOR with TYPES.cursor_type.
CREATE OR REPLACE PACKAGE types AS 
  TYPE cursor_type IS REF CURSOR;
END Types; 
/
Hope this helps. Regards Tim... 
반응형

'Database > ORACLE' 카테고리의 다른 글

Automatic SQL Tuning in Oracle Database 10g  (0) 2012.07.20
10G OCP 자격증 관련  (2) 2012.07.08
일정 시간 별로 쿼리 정보 조회  (0) 2012.02.20
오라클 병렬 인덱스 조회 및 수정하기  (0) 2012.01.27
AWR Report 정리본  (0) 2011.09.28
반응형

흠...

병렬 인덱스가 성능을 하락 시키는 경우가 많다...

경합이라던지..

잘써야 하는데,

대부분의 사이트에는 아무런 생각없이(?) 가져다 쓰기 바쁘다...

고로...

일괄적으로 조회나 수정할 때 사용하는 쿼리 하앍..

우선

PARALLEL 옵션의 차수 Degree 를 통회 조회하는 방법


 SELECT *
    FROM  DBA_INDEXES -- Dictionary를 통해 indexes로 끝나는 것을 모두 조회하여도 됨...
   WHERE DEGREE NOT IN ('1','DEFAULT','0')
       AND OWNER NOT IN ('SYS','SYSTEM','WMSYS', 'OUTLN', 'TSMSYS', 'SYSMAN') 
 

EX) 병렬 옵션의 차수가 8인 인덱스를 일괄적으로 4로 변경 하기 !

 SELECT 'ALTER INDEX ' || OWNER || '.' || INDEX_NAME || ' PARALLEL(DEGREE 4);'
     FROM DBA_INDEXES
   WHERE DEGREE = '8'
       AND OWNER NOT IN ('SYS','SYSTEM','WMSYS', 'OUTLN', 'TSMSYS', 'SYSMAN')        
 
간단히 참고용으로 작성함... 
반응형
반응형

## AWR REPORT SETTING ##
1. 특정 기간 동안의 Database level성능 @$ORACLE_HOME/rdbms/admin/awrrpt.sql

2. Database ID와 Instance ID를 지정후 성능 Report 작성 [AWR을 Export/Import 후 다수의 Database에 대한 통계
   자료가 존재시 혹은 RAC 환경 등에서 , Database ID 와 Instance ID 지정이 필요시]
   @ORACLE_HOME/rdbms/admin/awrrpti.sql
   
3. 특정 SQL문에 대한 성능 Report작성 : SQL_ID 값을 입력해야 한다.[1,2에서 주요 Top을 차지하는 SQL문에 대한 특정기간 동안의 Reporting]
   @awrsqrpt.sql
   
4. 특정 SQL문에 대한 성능 Report작성[특정 Database 혹은 Instance에 대해서, : 마찬가지로 SQL_ID 값을 입력해야 한다.]
   @awrsqrpi.sql
    성능 비교 자료
    
5. 두개의 특정 시간 사이의 생성[H/W 변경, Application 변경등 Database 성능에 영향을 줄수 있는 작업 전/후 비교시 사용]
   @awrddrpt.sql
   
6. 두개의 특정 시간 사이의 성능 비교 자료 생성[특정 Database 혹은 Instance 에 대해서]
   @awrddrpi.sql
SQL> select snap_interval, retention from dba_hist_wr_control;

--> SNAP_INTERVAL : 스냅샷 주기 , RETENTION : 보관주기

SQL> BEGIN
       dbms_workloadd_repository.modify_snapshot_settings(interval=>20,retention=>2*24*60);
       
       ----- interval=>20 스냅샷주기를 20분단위로 하겠다.
       ----- 보관주기를 2일로 하겠다.
       );
       END;
SQL> EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS (
     RETENTION => 0,
     INTERVAL => 0,
     DBID => -- SELECT DBID FROM V$DATABASE);
            
SQL> select snap_interval, retention from dba_hist_wr_control;

# SYS 스키마의 SYSAUX 테이블스페이스 내에 저장되어 있으며, WRM$_* 또는 WRH$_* 의 네임 포맷을 갖습니다.
  WRM$_* 테이블은 수집 대상 데이타베이스 및 스냅샵에 관련한 메타데이타 정보를, WRH$_* 테이블은 실제
  수집된 통계 정보를 저장하는데 사용됩니다.(WRH$_*의 H는 "HISTORICAL",WRM$_*의 M은 "METADATA"의 약자를 의미합니다.)
#################################################################################################################
  
## 타임 모델 (Time Model) ##

ORACLE 10G는 여러가지 자원에 관련한 실제 사용 시간을 확인하기 위한 타임 모델(time model)을 구현하고 있습니다. 전체
시스템 관련 소요 시간 통계는 V$SYS_TIME_MODEL 뷰에 저장됩니다. V$SYS_TIME_MODEL 뷰에 대한 쿼리 결과의 예가 아래와 같습니다.

SQL> SELECT STAT_NAME, VALUE FROM V$SYS_TIME_MODEL;

STAT_NAME    VALUE
---------  ---------
DB time    791943871  --> 인스턴스 시작 후 DB 사용 누적치

위에서 DB TIME 이라는 통계정보는 인스턴스 시작 이후 데이타베이스가 사용한 시간의 누적치를 의미합니다.
샘플 작업을 실행한 다음 다시 뷰를 조회했을 때 표시되는 DB TIME 의 값과 이전 값의 차이가 해당 작업을 위해
데이타베이스가 사용한 시간이 됩니다. 
시스템 / 데이타베이스 레벨이 아닌 세션 레벨의 통계를 원한다면 V$SESS_TIME_MODEL 뷰를 이용할 수 있습니다.
V$SESS_TIME_MODEL 뷰는 현재 연결 중인 ACTIVE/INACTIVE 세션들의 통계를 제공합니다.
세션의 SID 값을 지정해서 개별 세션의 통계를 확인할 수 있습니다.
  
또 새롭게 추가된 Active Session History(ASH)는 AWR과 마찬가지로 향후 분석 작업을 위해 세션 성능통계를 버퍼에 저장합니다.
V$ACTIVE_SESSION_HISTORY 등을 통해 조회된다는 사실입니다. 데이타는 1초 단위로 수집되며, 엑티브 세션만이
수집 대상이 됩니다. 버퍼는 순환적인 형태로 관리되며, 저장 메모리 용량이 가득 차는경우 오래된 데이타부터 순서대로 삭제됩니다.
이벤트를 위해 대기 중인 세션의 수가 얼마나 되는지 확인하려면 아래와 같이 조회하면 됩니다.

SQL> SELECT session_id||','||session_serial# SID, n.name, wait_time, time_waited
     FROM v$active_session_history a, v$event_name n
     WHERE n.event# = a.event#;
     
SID             NAME                    WAIT_TIME   TIME_WAITED
------   -----------------             ----------  -------------
166,1    log file parallel write            0           288
166,1    log file parallel write            0           223
161,1    control file sequential read       0         39401
166,1    log file parallel write            0         30367
146,271  null event                         0          2712
167,1    db file parallel write             0           385
  
위 쿼리는 이벤트 별로 대기하는 데 얼마나 많은 시간이 사용되었는지를 알려줍니다. 특정 wait 
이벤트에 대한 드릴다운을 수행할 때에도 ASH 뷰를 이용할 수 있습니다. 예를 들어, 세션 중 하나가
buffer busy wait상태에 있는 경우 정확히 어떤 세그먼트에  wait 이벤트가 발생했는지 확인하는 것이 가능합니다.
이때 ASH 뷰의 CURRENT_OBJ# 컬럼과 DBA_OBJECTS 뷰를 조인하면 문제가 되는 세그먼트를 확인할 수 있다.

ASH 뷰는 그 밖에도 병렬 쿼리 서버 세션에 대한 기록을 저장하고 있으므로, 병렬 쿼리의 WAIT 이벤트를 진단하는 데 유용하게 사용된다.
레코드가 병렬 쿼리의 slave process로서 활용되는 경우, coordinator server sesion 의 SID 는 QCC_SESSION_ID 컬럼으로 확인할 수 있다.
SQL_ID 컬럼은 WAIT 이벤트를 발생시킨 SQL구문의 ID 를 의미하며, 이 컬럼과 V$SQL 뷰를 조인하여 문제를 발생시킨 SQL구문을 찾아낼 수 있다.
CLIENT_ID 컬럼은 웹 어플리케이션과 같은 공유 사용자 환경에서 클라이언트를 확인하는 데 유용하며, 이값은 DBMS_SESSION.SET_INDENTIFIER를 
통해 설정이 가능하다.

## SNAPSHOT 찍기 ##
SQL> SELECT SYSDATE FROM DUAL;
SQL> SELECT SNAP_ID, BEGIN_INTERVAL_TIME BEGIN, END_INTERVAL_TIME END FROM SYS.DBA_HIST_SNAPSHOT; --> 스냅샵 아이디를 본다.
SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT; --> 수동으로 스냅샷을 찍는다.
SQL> SELECT SNAP_ID, BEGIN_INTERVAL_TIME BEGIN, END_INTERVAL_TIME END FROM SYS.DBA_HIST_SNAPSHOT; --> 스냅샵 아이디를 본다.
SQL> EXEC DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(10,15): --> SNAPSHOT ID를 범위로 지정해서 삭제한다.
SQL> SELECT SNAP_ID, STARTUP_TIME FROM DBA_HIST_SNAPSHOT ORDER BY 1,2; --> 정렬해서 스냅샵 아이디를 본다.


## SNAPSHOT을 ID를 묶어서 이름을 지정한다. ##
SQL> SELECT DBID, BASELINE_ID, BASELINE_NAME, START_SNAP_ID, END_SNAP_ID FROM DBA_HIST_BASELINE;
SQL> EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(17,20,'TEST_BASE_1');
SQL> SELECT DBID, BASELINE_ID, BASELINE_NAME, START_SNAP_ID, END_SNAP_ID FROM DBA_HIST_BASELINE;
SQL> EXEC DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE('TEST_BASE_1');

 

### SQL QUERY ADVISOR ###
SQL> CONN sys/<password> AS SYSDBA
SQL> GRANT ADVISOR TO scott; ?? scott 유저에게 advisor 권한 부여
SQL> CONN scott/tiger
SQL> SELECT ename from emp e
WHERE job = 'SALESMAN'
AND comm not in (SELECT comm FROM emp
WHERE ename=e.ename AND comm is not null); ?? 문제의 쿼리
선택된 레코드가 없습니다.

SQL> DECLARE
2 l_task_id varchar2(30);
3 l_sql varchar2(2000);
4 BEGIN
5 l_sql := 'select ename from emp e where job = :job and comm not in
6 (select comm from emp where ename=e.ename and comm is not null)';
7 l_task_id := dbms_sqltune.create_tuning_task ( ?? dbms_sqltune 패키지를 사용.
8 sql_text => l_sql,
9 user_name => 'SCOTT', ?? [주의] 유저명은 대문자로 해야함.
10 scope => 'COMPREHENSIVE',
11 time_limit => 120,
12 task_name => 'sql_advisor_test14' ?? 테스크 이름
13 );
14 dbms_sqltune.execute_tuning_task ('sql_advisor_test14'); ?? 튜닝 테스크 실행
15 END;
16 /
PL/SQL 처리가 정상적으로 완료되었습니다.

SQL> set serveroutput on size 999999
SQL> set long 999999
SQL> select dbms_sqltune.report_tuning_task ('sql_advisor_test14') from dual; ?? 생성된 테스크 보고서 보기

 

http://cafe.naver.com/prodba

 출처 : 

반응형
반응형
포터블도 시간나면 만들어야지... 하하하...


반응형
반응형


- 이클립스 상에서 오라클 DATABASE를 바로 연결하여 사용하는 방법을 기술한다.

설치에 사용된 이클립스...




Help -> SoftWare Update를 클릭


1. Add Site를 누름 

2.http://quantum.sourceforge.net/update-site/ (Location) 부분에 입력

3. OK를 클릭

4. Quantum 을 검색 한뒤

5. Install 버튼 클릭



6. NEXT를 클릭


7. 사용 조건에 승인하고 Finish 를 클릭 -> 설치 완료
  
    - 아래와 같이 설치가 완료되어 다시 시작한다는 메시지가 뜨면 YES를 누르고 이클립스를 다시 시작함.
  


8. 이클립스 상에서 Quantum 플러그인 추가

window -> open Perspective -> other



9. Other open Perspective 화면에서 Quantum DB를 선택함.


10. 정상적으로 설치되었음을 확인할 수 있다.(연결정보 설정은 당연히 현재는 안되어 있음)

11. 연결 정보를 다음과 같이 추가함.
Database Bookmarks 탭상에서 빈공간에서 마우스 우클릭 -> New Bookmark... 클릭


12.  ADD driver을 눌러 추가하자 ! (우리는 오라클을 추가할 것이다.)



13. Add External Jar.. 늘 눌러 ojbc14.jar를 추가함.


14. 아래와 같이 정보를 설정하고 Finish를 누름



15. 입력한 Oracle 드라이버를 선택후 Next> 를 클릭


16. 다음과 같이 DB 연결 정보를 입력
     userid : 연결ID
     passwd : 연결ID의 암호
     HOSTNAME : DB서버 주소
     PORT : 오라클 리스너 포트(일반적으로 1521)
     DATABASE NAME : SID NAME


17. 북마크에서 사용할 이름을 지정함


18. 17번까지의 설정을 모두 마치면 자동으로 연결되고(정보가 틀리지 않았다면)
     Quantum SQL Queries View상에서 쿼리를 입력후 초록색 ▶ 버튼을 누르면 하단의 Quantum Table View 상에서 데이터가 조회됨.





P.$ :
1. MySql 연결시에는 mysql-connector-java-5.1.6-bin.jar 파일을 다운받음
2. 드라이버 선택 -> com.mysql.jdbc.Driver
3. 연결 포트는 3306임.
반응형

+ Recent posts