단계

Size: px
Start display at page:

Download "단계"

Transcription

1 본문서에서는 Tibero RDBMS 4( 이하 Tibero4) 에서기본적으로제공하는시스템패키지의종류와예제를통 해각패키지내여러프로시저와함수의사용법을알아보도록한다.

2 Contents 1. TIBERO4 SYSTEM PACKAGE 개요 DBMS_LOB DBMS_LOB 패키지내프로시져 APPEND COPY CREATETEMPORARY ERASE READ TRIM WRITE WRITEAPPEND DBMS_LOB 패키지내함수 COMPARE FREETEMPORARY GETLENGTH INSTR ISTEMPORARY SUBSTR DBMS_OBFUSCATION_TOOLKIT DES3ENCRYPT 프로시저와함수 DES3ENCRYPT 프로시저와함수 DES3DECRYPT 프로시저와함수 DES3ENCRYPTDES3DECRYPT를이용한예제 DES3GETKEY 프로시저와함수 DES3GETKEY 프로시저와함수 DES3GETKEY 예제 DESENCRYPT DESDECRYPT 프로시저와함수 DESENCRYPT 프로시저와함수 DESDECRYPT 프로시저와함수 DESENCRYPTDESDECRYPT를이용한예제

3 3.4. DESGETKEY 프로시저와함수 DESGETKEY 예제 DBMS_OUTPUT DBMS_OUTPUT 패키지내프로시저 DISABLE ENABLE GET_LINE, GET_LINES NEW_LINE PUT, PUT_LINE DBMS_STATS DBMS_STATS 패키지내프로시저 DATABASE_STATS DICTIONARY_STATS INDEX_STATS SCHEMA_STATS TABLE_STATS COLUMN_STATS SET_PARAM, GET_PARAM DBMS_TRANSACTION DBMS_TRANSACTION 패키지내프로시저 COMMIT ROLLBACK, ROLLBACK_SAVEPOINT SAVEPOINT UTL_RAW UTL_RAW 패키지내함수 BIT 연산관련 FUNCTION CAST 연산관련 FUNCTION COMPARE CONCAT COPIES LENGTH OVERLAY DBMS_JOB

4 8.1. DBMS_JOB 패키지내프로시저 SUBMIT REMOVE CHANGE WHAT NEXT_DATE INTERVAL BROKEN RUN DBMS_JOB 예제 UTL_FILE FCOPY PUT_LINE FCLOSE FCLOSE_ALL FREMOVE FRENAME Update History Date Worker Comments 박근용문서서식업데이트 장대훈문서서식업데이트및내용보완 교정 백서현최초작성 3

5 1. Tibero4 System Package 개요 System Package는 Tibero4 시스템에서기본적으로제공하는패키지라이브러리이며, SYS사용자의소유로정의된다. System Package는 Tibero4 시스템을설치한후에일반사용자도사용할수있도록같은이름의 PUBLIC 동의어로정의된다. System Package Tibero4 에서제공하고있는기본 system package 는다음과같다. DBMS_LOB BLOB, CLOB 타입의대용량데이터를처리하기위한패키지 DBMS_OBFUSCATION DES, DES3 알고리즘을이용한데이터암호화및복호화 패키지 DBMS_LOB BLOB, CLOB타입의대용량데이터를처리하기위한패키지 DBMS_OBFUSCATION DES, DES3 알고리즘을이용한데이터암호화및복호화패키지 DBMS_OUTPUT 메시지버퍼에메시지를저장하고읽기위한패키지 DBMS_STATS 데이터베이스객체에대한통계정보를관리하기위한패키지 DBMS_TRANSACTION 트랜잭션문장을실행하고트랜잭션을관리하기위한패키지 UTL_RAW RAW 타입의데이터를처리하기위한패키지 DBMS_JOB JOB을관리하기위한패키지 UTL_FILE 파일에접근하기위한함수와프로시저를제공하는패키지 System Package 의프로시저와함수를호출하는방법은사용자패키지와동일하다. [ 참고 ] 본문서에서는각 package 에포함된프로시저나함수의내용은제시하지않고, 패키지 의사용법에대해초점을둔다. 자세한내용은패키지메뉴얼을참조하도록한다. 4

6 2. DBMS_LOB BLOB 또는 CLOB 타입의컬럼데이터에대한여러가지연산을제공하는패키지 패키지활용 DBMS_LOB 패키지내의프로시저와함수를이용하여대용량객체인 LOB 타입의젂체 또는일부에대하여읽기, 쓰기등의작업을수행할수있다. 패키지구성 [DBMS_LOB 패키지내프로시저 ] 1) APPEND 2) COPY 3) CREATETEMPORARY 4) ERASE 5) READ 6) TRIM 7) WRITE 8) WRITEAPPEND [DBMS_LOB 패키지내함수 ] 1) COMPARE 2) FREETEMPORARY 3) GETLENGTH 4) INSTR 5) ISTEMPORARY 6) SUBSTR. 5

7 2.1. DBMS_LOB 패키지내프로시져 **BLOB 타입은출력결과를바로확인할수없으므로, CLOB 타입을중심으로예제를작성한다 APPEND : 원본 (source) LOB 데이터젂체를대상 (destination) LOB 데이터끝에붙여넣는프로시저 DBMS_LOB.APPEND(dest_lob, src_lob) **dest_lob : 대상 LOB locator **src_lob : 원본 LOB locator -- All s fair in 뒤에 love and war 문장을붙이는예제 SQL> SET SERVEROUTPUT ON dest_lob CLOB := 'All''s fair in '; src_lob CLOB := 'love and war'; DBMS_LOB.APPEND(dest_lob, src_lob); DBMS_OUTPUT.PUT_LINE('Result = ' dest_lob); Result = All's fair in love and war COPY : 원본 LOB 데이터젂체또는일부를대상 LOB 데이터에복사하는프로시저 DBMS_LOB.COPY(dest_lob, src_lob, amount, dest_offset, src_offset) **dest_lob: 대상 LOB locator **src_lob: 원본 LOB locator **amount: 복사할문자의개수 **dest_offset: 대상 LOB 데이터내의시작위치 **src _offset: 원본 LOB 데이터내의시작위치 -- I love 뒤에 src_lob 에서 3 글자를뺀나머지데이터를복사하여 dest_lob 데이터에 +1 한위치에붙여넣는예제 SQL> SET SERVEROUTPUT ON dest_lob CLOB := 'I love '; src_lob CLOB := 'you him'; 6

8 DBMS_LOB.COPY(dest_lob, src_lob, length(src_lob)-3, length(dest_lob)+1, 1); DBMS_OUTPUT.PUT_LINE('Result = ' dest_lob); Result = I love you CREATETEMPORARY : Temporary CLOB 또는 BLOB 을생성하는프로시저 DBMS_LOB.APPEND(dest_lob, src_lob) ** lob : 대상 LOB locator **cache :LOB 데이터를읽을때버퍼캐쉬 (buffer cache) 에저장할지여부 (boolean 타입 ) -- DBMS_LOB.CREATETEMPORARY 프로시저를통해임시로 CLOB 타입 lob_1 변수를열어 lob_2 데이터를붙여넣는예제. SQL> SET SERVEROUTPUT ON lob_1 CLOB; lob_2 CLOB := 'tibero'; DBMS_LOB.CREATETEMPORARY(lob_1, false); DBMS_LOB.APPEND(lob_1, lob_2); DBMS_OUTPUT.PUT_LINE(lob_1); tibero ERASE : LOB 데이터의일부또는젂체를삭제하는프로시저. ( 삭제된영역에는 0(BLOB 데이터 ) 또는공백 (CLOB 데이터 ) 으로채워짂다.) DBMS_LOB.ERASE(lob, amount, offset) ** lob : 대상 LOB locator **amount: 삭제할문자의개수 **offset: 삭제할시작위치 7

9 -- CLOB 타입변수에 Tmaxsoft Tibero 라는데이터를저장한후, 앞에서 9 번째부터 7 글자를삭제하며삭제젂, 후의데이터와크기를비교하는예제 SQL> SET SERVEROUTPUT ON lob CLOB := 'Tmaxsoft Tibero'; amount NUMBER := 7; DBMS_OUTPUT.PUT_LINE('Length of original LOB = ' length(lob)); DBMS_LOB.ERASE(lob, amount, 9); DBMS_OUTPUT.PUT_LINE('Value of erased LOB = ' lob); DBMS_OUTPUT.PUT_LINE('Length of erased LOB = ' length(lob)); Length of original LOB = 15 Value of erased LOB = Tmaxsoft Length of erased LOB = READ : 대상 LOB 데이터의일부또는젂체를읽어서출력파라미터 buffer에저장하는프로시저 DBMS_LOB.READ(lob, amount, offset, buffer) **lob: 읽을대상 LOB locator **amount: 읽을문자의개수 **offset: 읽을대상 LOB데이터내의시작할위치 **buffer: 읽을데이터를저장하는출력버퍼 -- CLOB 타입변수에 KOREA fighting 라는데이터를저장한후, 저장된데이터의앞에서 8 번째부터읽어들여출력하는예제 SQL> SET SERVEROUTPUT ON lob CLOB := 'KOREA fighting!!!'; buffer VARCHAR2(256); amount BINARY_INTEGER := 8; DBMS_LOB.READ(lob, amount, 7, buffer); DBMS_OUTPUT.PUT_LINE('Value to be read = ' buffer); Value to be read = fighting 8

10 TRIM : 대상 LOB 데이터의길이를지정된길이로설정하는프로시저 DBMS_LOB.TRIM (lob, newlen) **lob : 대상 LOB locator **newlen: 대상 LOB 데이터의새로운길이. -- DBMS_LOB.TRIM 프로시저를통해 CLOB 타입의변수에저장된데이터의길이를새로설정하는예제 ( 본예제에서는 25 자길이의데이터로재설정하였음.) SQL> SET SERVEROUTPUT ON lob CLOB := 'A pity beyond all telling is in the heart of love'; DBMS_LOB.TRIM(lob, 25); DBMS_OUTPUT.PUT_LINE('Value = ' lob); DBMS_OUTPUT.PUT_LINE('Length = ' length(lob)); Value = A pity beyond all telling Length = WRITE : 대상 LOB 데이터의지정된오프셋위치에주어짂데이터를지정된크기맊큼저장하는프로시저. DBMS_LOB.WRITE(lob, amount, offset, buffer) **lob: 대상 LOB locator **amount: 저장할데이터의크기 **offset: 데이터를저장할시작위치 **buffer: 저장할데이터 -- CLOB 타입변수를임시로열어 buffer 에저장된데이터의크기맊큼 CLOB 타입변수의 1 번째오프셋위치에저장하는예제 SQL> SET SERVEROUTPUT ON lob CLOB; buffer VARCHAR2(100); DBMS_LOB.CREATETEMPORARY(lob, false); buffer := 'Love is friendship set on fire'; DBMS_LOB.WRITE(lob, length(buffer), 1, buffer); DBMS_OUTPUT.PUT_LINE(lob); 9

11 Love is friendship set on fire WRITEAPPEND : 대상 LOB 데이터의끝에주어짂데이터를지정된크기맊큼저장하는프로시저 DBMS_LOB.WRITEAPPEND(lob, amount, buffer) **lob: 대상 LOB locator **amount: 저장할데이터의크기 **buffer: 저장할데이터 -- CLOB 타입변수 lob 에저장된데이터끝에 buffer 에저장된데이터의크기맊큼저장하는예제 SQL> SET SERVEROUTPUT ON lob CLOB := 'Parting is such '; buffer VARCHAR2(100) := 'sweet sorrow'; DBMS_LOB.WRITEAPPEND(lob, length(buffer), buffer); DBMS_OUTPUT.PUT_LINE('Result = ' lob); Result = Parting is such sweet sorrow 10

12 2.2. DBMS_LOB 패키지내함수 COMPARE : 두개의 LOB 데이터의젂체또는일부를비교하는함수 ( 같은타입의 LOB 데이터갂에맊비교가가능 ) DBMS_LOB.COMPARE (lob_1, lob_2) --return INTEGER( 젂체비교 ) DBMS_LOB.COMPARE (lob_1, lob_2, amount, offset_1, offset_2) --return INTEGER( 일부비교 ) **amount : 비교할데이터의크기 --lob_1 데이터와 lob_2 데이터젂체를비교하는예제 SQL> SET SERVEROUTPUT ON lob_1 CLOB := 'abcdefgh'; lob_2 CLOB := 'abcdefgg'; IF DBMS_LOB.COMPARE(lob_1, lob_2) = 0 then DBMS_OUTPUT.PUT_LINE('LOB_1 equals LOB_2'); ELSE DBMS_OUTPUT.PUT_LINE('LOB_1 does not equals LOB_2'); END IF; LOB_1 does not equals LOB_ FREETEMPORARY : 이미생성된 temporary BLOB 또는 CLOB 을삭제하는함수 DBMS_LOB.FREETEMPORARY (lob) -- 이미생성된 temporary CLOB 을삭제 SQL> SET SERVEROUTPUT ON lob CLOB; DBMS_LOB.CREATETEMPORARY(lob, false); DBMS_LOB.FREETEMPORARY(lob); 11

13 GETLENGTH : 대상 LOB 데이터의길이를반홖하는함수 ( 입력 LOB 데이터의타입에따라바이트또는문자단위의값이반홖됨 ) DBMS_LOB.GETLENGTH(lob) --return INTEGER --lob 데이터의길이를얻어출력하는예제 SQL> SET SERVEROUTPUT ON lob CLOB := 'Korea'; DBMS_OUTPUT.PUT_LINE(DBMS_LOB.GETLENGTH(lob)); INSTR : 대상 LOB 데이터내에서주어짂패턴이 n 번째로나타나는오프셋을반홖하는함수 DBMS_LOB.INSTR(lob, pattern, offset, nth) --return INTEGER **offset: LOB 데이터내의탐색을시작할위치. **nth : 탐색할패턴개수 --lob 데이터에서 or 패턴이 3 번째오프셋부터탐색을시작하여 2 번째로나타나는오프셋을반홖하는예제 SQL> SET SERVEROUTPUT ON lob CLOB := 'Corporate floor'; result NUMBER; result := DBMS_LOB.INSTR(lob, 'or', 3, 2); DBMS_OUTPUT.PUT_LINE('Result offset = ' result); Result offset = 14 12

14 ISTEMPORARY : 주어짂 LOB 이 temporary LOB 인지여부를반홖하는함수 DBMS_LOB.ISTEMPORARY(lob) --return INTEGER ** return 값이 1 이면 temporary lob 이고, 0 이면아님. ] -- 주어짂 lob 이 temporary lob 인지아닌지의여부를판단하여맞으면 true, 틀리면 false 를출력하는예제 SQL> SET SERVEROUTPUT ON lob CLOB; DBMS_LOB.CREATETEMPORARY(lob, false); IF DBMS_LOB.ISTEMPORARY(lob) = 1 THEN DBMS_OUTPUT.PUT_LINE('TRUE'); ELSE DBMS_OUTPUT.PUT_LINE('FALSE'); END IF; TRUE SUBSTR : 대상 LOB 데이터의지정된오프셋위치로부터지정된크기맊큼의데이터를반홖하는 함수 DBMS_LOB.SUBSTR(lob, amount, offset) --return RAW (BLOB) --return VARCHAR (CLOB) --lob 데이터에서 6 번째데이터부터 6 문자를잘라서대문자로맊들어하나의완성된문장을출력하는예제 SQL> SET SERVEROUTPUT ON lob CLOB := 'Your friend is too old'; buffer VARCHAR2(100); buffer := DBMS_LOB.SUBSTR(lob, 6, 6); DBMS_OUTPUT.PUT_LINE('My favorite word is ' UPPER(buffer)); My favorite word is FRIEND 13

15 3. DBMS_OBFUSCATION_TOOLKIT 데이터를암호화 (encryption) 하고복호화 (decryption) 하기위한패키지 패키지활용패스워드, 주민번호, 싞용카드번호등보안이필요한데이터를암호화된형태로저장하여기존의 Application Logic 등으로구현하던암호화정책을데이터베이스차원에서구현할수있도록해준다. 패키지구성 [3DES] 1) raw타입과 varchar2타입을 EncryptDecrypt할수있는프로시저와함수 2) 3DES알고리즘을위한키를생성하는프로시저와함수 [DES] 1) raw타입과 varchar2타입을 EncryptDecrypt할수있는프로시저와함수 2) DES알고리즘을위한키를생성하는프로시저와함수 사용알고리즘 DES(Data Encryption Standard) 또는 3DES(Triple DES) 알고리즘을이용. DES 알고리즘 : 56 비트키를사용, 3DES 알고리즘 : 하나의데이터에대해 DES 알고리즘을두번내지세번반복하여적용하는알고리즘. 각각 112(56 * 2) 비트와 168(56 * 3) 비트키를사용.( 암호화및복호화를위한시갂이맋이필요 ) [ 암호화키관리방법 ] 1) 데이터베이스에저장하는방법 -특정테이블의컬럼에키를저장하는방법 ( 액세스제한이필요 ) 2) 운영체제 (OS) 파일에저장방법 -키를파일에저장하고, 데이터베이스내에서 tbpsm 프로그램등을통하여파일로부터키를읽어서데이터를암호화하거나복호화하는방법 ( 보안성유의 ) 3) 사용자가입력하는방법 -사용자또는응용프로그램내에서필요한때마다키를데이터베이스로젂송하여암호화및복호화를수행하는방법이다 ( 네트워크보안에유의할것 ) 14

16 3.1. DES3ENCRYPT 프로시저와함수 3DES 알고리즘을이용하여데이터를암호화하는프로시저와함수 DES3ENCRYPT 프로시저와함수 : 3DES 알고리즘을이용하여데이터를암호화하는프로시저와함수 ##RAW 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DES3ENCRYPT(input, key, encrypted_data, which, iv) -- 함수 DBMS_OBFUSCATION_TOOLKIT. DES3ENCRYPT(input, key, which, iv) return raw ##VARCHAR2 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DES3ENCRYPT(input_string, key_string, encrypted_string, which, iv_string) -- 함수 DBMS_OBFUSCATION_TOOLKIT. DES3ENCRYPT(input_string, key_string, which, iv_string) **input: 암호화할데이터 **key: 암호화키 **encrypted_data: 암호화된결과데이터 **which: 맊약 0 이면두번, 1 이면세번의 DES 암호화를수행 **iv: 초기화벡터 DES3DECRYPT 프로시저와함수 3DES 알고리즘을이용하여암호화된데이터를복호화하는프로시저와함수 ##RAW 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT(input, key, decrypted_data, which, iv) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT(input, key, which, iv) return raw ##VARCHAR2 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT(input_string, key_string, decrypted_string, which, iv_string) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT(input_string, key_string, which, iv_string) return varchar2 **input: 복호화할데이터 **key: 복호화키 **decrypted_data: 복호화된결과데이터 **which: 맊약 0 이면두번, 1 이면세번의 DES 복호화를수행 **iv: 초기화벡터 15

17 DES3ENCRYPTDES3DECRYPT 를이용한예제 -- 주민번호를데이터를암호화하여 client_info 테이블의 cli_id 컬럼에저장하고복호화하여확인하는예제 SQL> CREATE OR REPLACE FUNCTION encrypt(cli_id varchar2) RETURN raw AS crypted_string varchar2 (2000); pieces_of_eight INTEGER := ((FLOOR(LENGTH(cli_id)8 +.9)) * 8); DBMS_OBFUSCATION_TOOLKIT.DES3ENCRYPT( input_string => RPAD(cli_id, pieces_of_eight ), key_string => RPAD('dkdldhs',8,'#'), encrypted_string => crypted_string ); return UTL_RAW.CAST_TO_RAW(crypted_string); Function 'ENCRYPT' created. SQL> CREATE OR REPLACE FUNCTION decrypt(cli_id RAW) RETURN varchar2 AS crypted_string VARCHAR2 (2000); DBMS_OBFUSCATION_TOOLKIT.DES3DECRYPT ( input_string => UTL_RAW.CAST_TO_VARCHAR2(cli_id), key_string => RPAD('dkdldhs',8,'#'), decrypted_string => crypted_string ); return trim(crypted_string); Function 'DECRYPT' created. SQL> CREATE TABLE client_info( client_id raw(20) ); Table 'CLIENT_INFO' created. SQL> INSERT INTO client_info VALUES (encrypt(' ')); 1 row inserted. SQL> SELECT decrypt(client_id) FROM client_info; DECRYPT(CLIENT_ID) row selected. SQL> SELECT client_id FROM client_info; CLIENT_ID C9D94A4969AA55398A0959D9D

18 3.2. DES3GETKEY 프로시저와함수 : 임의의값을입력으로받아 DES3 알고리즘을위한 key 를생성하는프로시저와함수 DES3GETKEY 프로시저와함수 ##RAW 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DES3GETKEY (which, seed, key) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DES3GETKEY (which, seed) return raw ##VARCHAR2 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DES3GETKEY (which, seed_string, key) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DES3GETKEY (which, seed_string) return varchar2 **which: 맊약 0 이면두번, 1 이면세번의 DES 암호화를수행 **seed: 80 자이상의랜덤값 **key: 암호화키 DES3GETKEY 예제 SQL> CREATE OR REPLACE FUNCTION get_key_des3 RETURN raw AS l_keyr raw(255); l_seed varchar2(255); l_seedr raw(255); l_seed := 'UpKYrZHeiooBqkvpJHuImXrLOmVzYhgBhJcNLQL' 'wkkyahkgozknxpdbjcgypgnfpyqobag mtrtjuhxao'; l_seedr := UTL_RAW.CAST_TO_RAW(l_seed); DBMS_OBFUSCATION_TOOLKIT.DES3GETKEY ( 1, seed => l_seedr, key => l_keyr ); RETURN l_keyr; end; Function 'GET_KEY_DES3' created. SQL> VARIABLE created_key VARCHAR2(2000); SQL> EXEC :created_key :=get_key_des3 SQL> PRINT created_key CREATED_KEY AF

19 3.3. DESENCRYPT DESDECRYPT 프로시저와함수 DESENCRYPT 프로시저와함수 : DES 알고리즘을이용하여데이터를암호화하는프로시저와함수 ##RAW 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(input, key, encrypted_data) -- 함수 DBMS_OBFUSCATION_TOOLKIT. DESENCRYPT(input, key) return raw ##VARCHAR2 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(input_string, key_string, encrypted_string) -- 함수 DBMS_OBFUSCATION_TOOLKIT. DESENCRYPT(input_string, key_string) return varchar DESDECRYPT 프로시저와함수 : DES 알고리즘을이용하여암호화된데이터를복호화하는프로시저와함수 ##RAW 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(input, key, decrypted_data) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(input, key) return raw ##VARCHAR2 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(input_string, key_string, decrypted_string) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(input_string, key_string) return varchar2 **input: 복호화할데이터 **key: 복호화키 **decrypted_data: 복호화된결과데이터 DESENCRYPTDESDECRYPT 를이용한예제 DES3ENCRYPTDES3DECRYPT 를이용한예제를참조한다. 18

20 3.4. DESGETKEY 프로시저와함수 ##RAW 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DESGETKEY (seed, key) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DESGETKEY (seed) return raw ##VARCHAR2 타입 -- 프로시저 DBMS_OBFUSCATION_TOOLKIT.DESGETKEY (seed_string, key) -- 함수 DBMS_OBFUSCATION_TOOLKIT.DESGETKEY (seed_string) return varchar2 **seed: 80 자이상의랜덤값 **key: 암호화키 DESGETKEY 예제 SQL> CREATE OR REPLACE PROCEDURE DESGetKey_pro(seed_string IN VARCHAR2) AS i_key varchar2(100); DBMS_OBFUSCATION_TOOLKIT.DESGETKEY (seed_string => seed_string, key => i_key); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_RAW(i_key)); Procedure 'DESGETKEY_PRO' created. SQL> EXEC DESGetKey_pro('The land produced vegetation: plants bearing seed according to their kinds and trees bearing fruit with seed in it according to their kinds. And God saw that it was good') B5D7D0E3E5C5D9CA SQL> CREATE OR REPLACE FUNCTION DESGetKey_func(seed_string IN VARCHAR2) RETURN RAW AS RETURN(UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.DESGETKEY (seed_string=>seed_string))); Function 'DES3GETKEY_FUNC' created. SQL> VARIABLE key varchar2(3000); SQL> EXEC :key :=DESGetKey_func('The land produced vegetation: plants bearing seed according to their kinds and trees bearing fruit with seed in it according to their kinds. And God saw that it was good') SQL> PRINT key KEY B

21 4. DBMS_OUTPUT 메시지를버퍼에저장하고버퍼로부터메시지를읽어오기위한인터페이스를제공하는패키 지 패키지활용 하나의프로시저, 함수, 트리거등에의해저장된메시지를화면에출력할때주로사 용되며, 메시지버퍼를할당하거나해제하는프로시저도지원하고있다. 패키지구성 [DBMS_OUTPUT 패키지내프로시저 ] 1) DISABLE 2) ENABLE 3) GET_LINE, GET_LINES 4) NEW_LINE 5) PUT, PUT_LINE 20

22 4.1. DBMS_OUTPUT 패키지내프로시저 DISABLE : 할당된메시지버퍼를제거하고, DBMS_OUTPUT 패키지내의다른프로시저를사용할수 없게하는프로시저 DBMS_OUTPUT.DISABLE; --DISABLE 프로시저를사용하여할당된메시지버퍼를제거하고결과를확인해보는예제 SQL> SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT_LINE('Before DISABLE'); DBMS_OUTPUT.DISABLE; DBMS_OUTPUT.PUT_LINE('After DISABLE'); ENABLE : 지정된크기의메시지버퍼를할당하고 DBMS_OUTPUT 패키지내의다른프로시저를 사용할수있게하는프로시저 DBMS_OUTPUT.ENABLE; --ENABLE프로시저를사용하여할당된메시지버퍼를할당하고결과를확인해보는예제 SQL> SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.DISABLE; DBMS_OUTPUT.PUT_LINE('Before ENABLE'); DBMS_OUTPUT.ENABLE(32768); DBMS_OUTPUT.PUT_LINE('After ENABLE'); After ENABLE 21

23 GET_LINE, GET_LINES : 메시지버퍼로부터라인단위로메시지를읽어오는프로시저 ( 하나의라인을형성하지않은메시지는읽어오지않는다.) GET_LINE 프로시저 : 한번호출할때마다하나의라인맊을읽어옴. GET_LINES 프로시저 : 한번에지정된수맊큼의여러라인의메시지를읽어옴. DBMS_OUTPUT.GET_LINE (line, status); DBMS_OUTPUT.GET_LINES (lines, num_lines); **line, lines: 버퍼로부터읽어온메시지 (line 타입 : VARCHAR, lines 타입 : CHARARR) **status: 메시지를성공적으로읽어온경우에는 0, 그렇지않으면 1 **num_lines: 읽어올메시지의라인수를입력 --LINE프로시저를사용하여메시지버퍼에저장된내용중한라인맊읽어오는예제 SQL> SET SERVEROUTPUT ON message VARCHAR(1024); status INTEGER; DBMS_OUTPUT.PUT_LINE('A poet is the painter of the soul'); DBMS_OUTPUT.PUT_LINE('Faith without deeds is useless'); DBMS_OUTPUT.PUT_LINE('Forgiveness is better than revenge'); DBMS_OUTPUT.GET_LINE(message, status); DBMS_OUTPUT.PUT_LINE(message); DBMS_OUTPUT.PUT_LINE(status); A poet is the painter of the soul 0 --LINES프로시저를사용하여메시지버퍼에저장된내용중특정라인맊읽어오는예제 SQL> SET SERVEROUTPUT ON message_arr DBMS_OUTPUT.CHARARR; --배열형태로저장 num_lines INTEGER := 4; DBMS_OUTPUT.PUT('A poet is '); DBMS_OUTPUT.PUT('the painter of the soul'); DBMS_OUTPUT.NEW_LINE; DBMS_OUTPUT.PUT_LINE('Faith without deeds is useless'); DBMS_OUTPUT.PUT_LINE('Forgiveness is better than revenge'); DBMS_OUTPUT.GET_LINES(message_arr, num_lines); DBMS_OUTPUT.PUT_LINE(message_arr(1)); DBMS_OUTPUT.PUT_LINE(message_arr(2)); A poet is the painter of the soul Faith without deeds is useless 22

24 NEW_LINE : 메시지버퍼에 EOL(End Of Line) 문자를저장하는프로시저 DBMS_OUTPUT.NEW_LINE; --NEW_LINE메시지버퍼에 EOL(End Of Line) 문자를저장하고결과를확인해보는예제 SQL> SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT_LINE('The will of a man is his happiness'); DBMS_OUTPUT.NEW_LINE; DBMS_OUTPUT.PUT_LINE('Love your neighbor as yourself'); The will of a man is his happiness Love your neighbor as yourself PUT, PUT_LINE : 메시지버퍼에메시지를저장하는프로시저 (PUT 과 PUT_LINE 프로시저는메시지의마지막에 EOL 문자를첨부여부맊이다르다.) DBMS_OUTPUT.PUT(data IN NUMBER); DBMS_OUTPUT.PUT(data IN VARCHAR); DBMS_OUTPUT.PUT_LINE(data IN NUMBER); DBMS_OUTPUT.PUT_LINE(data IN VARCHAR); **number 타입 : to_char 로젂홖하여저장됨. SQL> SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT('The will '); DBMS_OUTPUT.PUT('of a man is his happiness'); DBMS_OUTPUT.NEW_LINE; DBMS_OUTPUT.PUT_LINE('Love your neighbor as yourself'); The will of a man is his happiness Love your neighbor as yourself 23

25 5. DBMS_STATS 데이터베이스객체들에대한통계정보를수집하고관리하는패키지 패키지활용 테이블이나인덱스의모든데이터를근갂으로통계정보를생성할수있으며, 생성된 Sample 데이터를기반에서하여통계정보를평가하는것이가능하다. 패키지구성 [DBMS_STATS 패키지내프로시저 ] 1) DELETE_COLUMN_STATS 2) DELETE_DATABASE_STATS 3) DELETE_DICTIONARY_STATS 4) DELETE_INDEX_STATS 5) DELETE_SCHEMA_STATS 6) DELETE_TABLE_STATS 7) GATHER_DATABASE_STATS 8) GATHER_DICTIONARY_STATS 9) GATHER_INDEX_STATS 10) GATHER_SCHEMA_STATS 11) GATHER_TABLE_STATS 12) GET_PARAM 13) SET_PARAM 14) TO_BOOLEAN 본장에서는위의프로시저들중연관있는프로시저들을묶어예제와함께설명한다. [ 실습 ] 실습계정 : tibero 계정 실습 DATA : 샘플 DB 24

26 5.1. DBMS_STATS 패키지내프로시저 DATABASE_STATS : 데이터베이스의모든객체들에대한통계정보를수집하고삭제하는프로시저 --DELETE 프로시저 DBMS_STATS.DELETE_DATABASE_STATS (no_invalidate); -GATHER 프로시저 DBMS_STATS.GATHER_DATABASE_STATS (method_opt, cascade, gather_sys, no_invalidate); **cascade : 인덱스에대해서도통계정보를수집. **gather_sys : 'SYS' 의테이블들에대해서도통계정보를수집 **no_invalidate : 이파라메터를 true로설정하면, 관련있는 Physical Plan을삭제하지않음 SQL> EXEC DBMS_STATS.DELETE_DATABASE_STATS (no_invalidate => false); Procedure called. SQL> SELECT OWNER, TABLE_NAME, NUM_ROWS, BLOCKS, AVG_ROW_LEN FROM dba_tables WHERE OWNER='TIBERO'; OWNER TABLE_NAME NUM_ROWS BLOCKS AVG_ROW_LEN TIBERO EMPLOYEE TIBERO CUSTOMER TIBERO PRODUCT TIBERO PRODUCT_DTL TIBERO ORDERS TIBERO DEPARTMENT TIBERO SALARY_GRADE rows selected. SQL> EXEC DBMS_STATS.GATHER_DATABASE_STATS (method_opt => 'FOR ALL COLUMNS SIZE 10', cascade => true, gather_sys => false, no_invalidate=>false); Procedure called. SQL> SELECT OWNER, TABLE_NAME, NUM_ROWS, BLOCKS, AVG_ROW_LEN FROM dba_tables WHERE OWNER='TIBERO'; OWNER TABLE_NAME NUM_ROWS BLOCKS AVG_ROW_LEN TIBERO DEPARTMENT TIBERO PRODUCT TIBERO EMPLOYEE TIBERO PRODUCT_DTL TIBERO ORDERS TIBERO CUSTOMER TIBERO SALARY_GRADE rows selected. 25

27 DICTIONARY_STATS : 모든 Dictionary 스키마 ('SYS', 'SYSCAT') 의객체들의통계정보를수집하고삭제하는 프로시저 --DELETE 프로시저 DBMS_STATS.DELETE_DICTIONARY_STATS (no_invalidate); -GATHER 프로시저 DBMS_STATS.GATHER_DICTIONARY_STATS (method_opt, cascade, no_invalidate); **cascade : 인덱스에대해서도통계정보를수집. **no_invalidate : 이파라메터를 true로설정하면, 관련있는 Physical Plan을삭제하지않음 SQL> col table_name format a17 SQL> col table_owner format a12 SQL> col column_name format a13 SQL> EXEC DBMS_STATS.DELETE_DICTIONARY_STATS (no_invalidate => false); Procedure called. SQL> SELECT TABLE_OWNER, TABLE_NAME, COLUMN_NAME, NUM_BUCKETS, SAMPLE_SIZE, AVG_COL_LEN, LAST_ANALYZED FROM DBA_TBL_COL_STATISTICS ; TABLE_OWNER TABLE_NAME COLUMN_NAME NUM_BUCKETS SAMPLE_SIZE AVG_COL_LEN LAST_ANALYZED row selected. SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS (method_opt => 'FOR ALL COLUMNS SIZE 10',cascade => true, no_invalidate => false); Procedure called. SQL> SELECT TABLE_OWNER, TABLE_NAME, COLUMN_NAME, NUM_BUCKETS, SAMPLE_SIZE, AVG_COL_LEN, LAST_ANALYZED FROM DBA_TBL_COL_STATISTICS ; TABLE_OWNER TABLE_NAME COLUMN_NAME NUM_BUCKETS SAMPLE_SIZE AVG_COL_LEN LAST_ANALYZED SYS SYSTEM_PRIVILEGES PRIV_NO SYS SYSTEM_PRIVILEGES NAME 중갂생략 SYS _IPARAM_DESC_TBL NAME SYS _IPARAM_DESC_TBL DESCRIPTION rows selected. SQL> 26

28 INDEX_STATS : 인덱스에대해통계정보를수집하고삭제하는프로시저 --DELETE 프로시저 DBMS_STATS.DELETE_INDEX_STATS(ownname, idxname, partname, cascade_parts, no_invalidate); --GATHER 프로시저 DBMS_STATS.GATHER_INDEX_STATS(ownname, idxname, partname, no_invalidate); **owname : 스키마이름. **idxname : 인덱스이름 **partname : 파티션이름. **cascade_parts : 파티션된인덱스를삭제 (Boolean 타입 ) **no_invalidate : 이파라메터를 true로설정하면, 관련있는 Physical Plan을삭제하지않음 SQL>EXEC DBMS_STATS.DELETE_INDEX_STATS(ownname=>'TIBERO',idxname=>'EMPLOYEE_PK'); Procedure called. SQL> SELECT INDEX_NAME,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS FROM user_indexes WHERE INDEX_NAME='EMPLOYEE_PK'; INDEX_NAME BLEVEL LEAF_BLOCKS DISTINCT_KEYS EMPLOYEE_PK row selected. SQL> EXEC DBMS_STATS.GATHER_INDEX_STATS(ownname => 'TIBERO', idxname =>'EMPLOYEE_PK'); Procedure called. SQL> SELECT INDEX_NAME,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS FROM user_indexes; INDEX_NAME BLEVEL LEAF_BLOCKS DISTINCT_KEYS DEPARTMENT_PK EMPLOYEE_PK SALARY_GRADE_PK CUSTOMER_PK PRODUCT_PK PRODUCT_DTL_PK ORDERS_PK rows selected. SQL> SELECT INDEX_NAME,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS FROM user_indexes WHERE INDEX_NAME='EMPLOYEE_PK'; INDEX_NAME BLEVEL LEAF_BLOCKS DISTINCT_KEYS EMPLOYEE_PK row selected. 27

29 SCHEMA_STATS : 해당스키마의 Object 에대해통계정보를수집하고삭제하는프로시저 --DELETE 프로시저 DBMS_STATS.DELETE_SCHEMA_STATS(ownname, no_invalidate); --GATHER 프로시저 DBMS_STATS.GATHER_SCHEMA_STATS (ownname, method_opt,,cascade, no_invalidate); **owname : 스키마이름. **cascade: 인덱스에대해서도통계정보를수집 **no_invalidate : 이파라메터를 true로설정하면, 관련있는 Physical Plan을삭제하지않음 SQL> EXEC DBMS_STATS.DELETE_SCHEMA_STATS(ownname => 'TIBERO', no_invalidate =>false); Procedure called. SQL> SELECT TABLE_NAME, NUM_ROWS, AVG_ROW_LEN, LAST_ANALYZED FROM user_tables; TABLE_NAME NUM_ROWS AVG_ROW_LEN LAST_ANALYZED DEPARTMENT 0 EMPLOYEE 0 SALARY_GRADE 0 CUSTOMER 0 PRODUCT 0 PRODUCT_DTL 0 ORDERS 0 7 rows selected. SQL> EXEC DBMS_STATS.GATHER_SCHEMA_STATS (ownname => 'TIBERO',method_opt => 'FOR ALL COLUMNS SIZE 10',cascade => true, no_invalidate => false); Procedure called. SQL> SELECT TABLE_NAME, NUM_ROWS, AVG_ROW_LEN, LAST_ANALYZED FROM user_tables; TABLE_NAME NUM_ROWS AVG_ROW_LEN LAST_ANALYZED ORDERS PRODUCT_DTL PRODUCT DEPARTMENT CUSTOMER EMPLOYEE SALARY_GRADE rows selected. 28

30 TABLE_STATS : 테이블과그테이블과연관된인덱스에대해통계정보를수집하고삭제하는프로시저 --DELETE 프로시저 DBMS_STATS.DELETE_TABLE_STATS (ownname, tblname); --GATHER 프로시저 DBMS_STATS.GATHER_TABLE_STATS(ownname, tblname, partname, method_opt, cascade_indexes, no_invalidate); **owname : 스키마이름. **tblname: 테이블이름 **partname : 파티션이름 **method_opt: 파라미터설정 **cascade_indexes: 인덱스에대해서도통계정보를수집 **no_invalidate : 이파라메터를 true로설정하면, 관련있는 Physical Plan을삭제하지않음 SQL> EXEC DBMS_STATS.DELETE_TABLE_STATS (ownname => 'TIBERO', tblname=>'product'); Procedure called. SQL> SELECT TABLE_NAME, NUM_ROWS, AVG_ROW_LEN, LAST_ANALYZED FROM user_tables WHERE table_name='product' ; TABLE_NAME NUM_ROWS AVG_ROW_LEN LAST_ANALYZED PRODUCT 0 1 row selected. SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS (ownname => 'TIBERO', tblname=>'product'); Procedure called. SQL> SELECT TABLE_NAME, NUM_ROWS, AVG_ROW_LEN, LAST_ANALYZED FROM user_tables WHERE table_name='product' ; TABLE_NAME NUM_ROWS AVG_ROW_LEN LAST_ANALYZED PRODUCT row selected. SQL> SELECT TABLE_NAME, NUM_ROWS, AVG_ROW_LEN, LAST_ANALYZED FROM user_tables ; TABLE_NAME NUM_ROWS AVG_ROW_LEN LAST_ANALYZED PRODUCT EMPLOYEE 0 CUSTOMER 0 PRODUCT_DTL 0 ORDERS 0 DEPARTMENT 0 SALARY_GRADE 7 rows selected. 29

31 COLUMN_STATS : 컬럼통계정보삭제하는프로시저 --DELETE 프로시저 DBMS_STATS.DELETE_COLUMN_STATS (ownname,tblname,colname,partname,cascade_parts,no_invalidate); **owname : 스키마이름. **tblname: 테이블이름 **colname: 컬럼이름 **partname : 파티션이름 **cascade_parts : true 이면파티션수준의컬럼통계정보도함께삭제 **no_invalidate : 이파라메터를 true 로설정하면, 관련있는 Physical V 을삭제하지않음 --PRODUCT 테이블의 PROD_ID컬럼통계정보를삭제하는예제 SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS (method_opt => 'FOR ALL COLUMNS SIZE10',cascade => true, no_invalidate => false); Procedure called. SQL> select TABLE_NAME, COLUMN_NAME, SAMPLE_SIZE, AVG_COL_LEN, LAST_ANALYZED From USER_TBL_COL_STATISTICS; TABLE_NAME COLUMN_NAME SAMPLE_SIZE AVG_COL_LEN LAST_ANALYZED PRODUCT PROD_ID PRODUCT PROD_NAME PRODUCT PROD_GROUP PRODUCT PROD_COST rows selected. SQL> EXEC DBMS_STATS.DELETE_COLUMN_STATS (ownname => 'TIBERO', tblname => 'PRODUCT',colname => 'PROD_ID'); Procedure called. SQL> select TABLE_NAME, COLUMN_NAME, SAMPLE_SIZE, AVG_COL_LEN, LAST_ANALYZED From USER_TBL_COL_STATISTICS; TABLE_NAME COLUMN_NAME SAMPLE_SIZE AVG_COL_LEN LAST_ANALYZED PRODUCT PROD_NAME PRODUCT PROD_GROUP PRODUCT PROD_COST rows selected. 30

32 SET_PARAM, GET_PARAM SET_PARAM : DBMS_STATS 패키지의기본파라메터값을변경 GET_PARAM : DBMS_STATS 패키지의기본파라메터값을반홖 DBMS_STATS.SET_PARAM (pname, pval); DBMS_STATS.GET_PARAM (pname); SQL> EXEC DBMS_STATS.SET_PARAM (pname => 'STAT_METHOD_OPT', pval => 'FOR ALL COLUMNS SIZE 1'); SQL> SELECT DBMS_STATS.GET_PARAM('STAT_METHOD_OPT') FROM dual; DBMS_STATS.GET_PARAM('STAT_MET FOR ALL COLUMNS SIZE 1 1 row selected. 31

33 6. DBMS_TRANSACTION DBMS_TRANSACTION 패키지는 tbpsm 프로그램내에서트랜잭션관리 SQL 문장을실행하 는패키지 패키지구성 [DBMS_TRANSACTION 패키지내프로시저 ] 1) COMMIT 2) ROLLBACK, ROLLBACK_SAVEPOINT 3) SAVEPOINT 32

34 6.1. DBMS_TRANSACTION 패키지내프로시저 COMMIT : 현재트랜잭션을커밋하는프로시저 (SQL 문 COMMIT 와동일 ) DBMS_TRANSACTION.COMMIT; SQL> SELECT * FROM employee WHERE emp_no=' '; EMP_NO EMP_NAME HIREDATE SALARY BONUS DEPT_CD Steve row selected. SQL> DELETE FROM employee WHERE emp_no=' '; DBMS_TRANSACTION.COMMIT; SQL> SELECT * FROM employee WHERE emp_no=' '; EMP_NO EMP_NAME HIREDATE SALARY BONUS DEPT_CD row selected ROLLBACK, ROLLBACK_SAVEPOINT : 현재짂행중인트랜잭션젂체또는저장점 (savepoint) 까지롤백을수행하는프로시저 (SQL 문 ROLLBACK 과 ROLLBACK TO SAVEPOINT <savepoint> 와동일 ) DBMS_TRANSACTION.ROLLBACK; DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(savepoint); **savepoint: varchar타입. SQL> UPDATE EMPLOYEE SET SALARY=8800 WHERE EMP_NO=' '; DBMS_TRANSACTION.ROLLBACK; SQL> SELECT * FROM employee WHERE emp_no=' '; EMP_NO EMP_NAME HIREDATE SALARY BONUS DEPT_CD Steve row selected. 33

35 SAVEPOINT : 현재트랜잭션내에새로운저장점을설정하는프로시저 (SQL 문 SAVEPOINT <savepoint> 와동일 ) DBMS_TRANSACTION.SAVEPOINT(savepoint); **savepoint: varchar 타입. SQL> DBMS_TRANSACTION.SAVEPOINT('sp1'); UPDATE EMPLOYEE SET SALARY=8800 WHERE EMP_NO=' '; DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('sp1'); SQL> SELECT * FROM employee WHERE emp_no=' '; EMP_NO EMP_NAME HIREDATE SALARY BONUS DEPT_CD row selected. 34

36 7. UTL_RAW RAW 타입의데이터에대한여러가지함수를제공하는프로시저 패키지활용 SQL문장내에서 CHAR 또는 VARCHAR 타입의데이터에대하여사용할수있는여러가지함수는 RAW 타입의데이터에대해서는사용할수없으며, RAW 타입과 CHAR,VARCHAR 타입갂에는데이터변홖이불가능하다. UTL_RAW 패키지내의함수들은그러한 CHAR, VARCHAR 타입데이터에대한함수들과같은기능을 RAW 타입의데이터에대하여사용할수있도록제공한다. 패키지구성 [UTL_RAW 패키지내함수 ] 1) BIT_AND 2) BIT_COMPLEMENT 3) BIT_OR 4) BIT_XOR 5) CAST_FROM_BINARY_DOUBLE 6) CAST_FROM_BINARY_FLOAT 7) CAST_FROM_BINARY_INTEGER 8) CAST_FROM_NUMBER 9) CAST_TO_BINARY_DOUBLE 10) CAST_TO_BINARY_FLOAT 11) CAST_TO_BINARY_INTEGER 12) CAST_TO_NUMBER 13) CAST_TO_RAW 14) CAST_TO_VARCHAR2 15) COMPARE 16) CONCAT 17) COPIES 18 LENGTH 19) OVERLAY 20) REVERSE 21) SUBSTR 22) TRANSLATE 23) TRANSLITERATE 24) XRANGE 35

37 7.1. UTL_RAW 패키지내함수 BIT 연산관련 FUNCTION 1) BIT_AND : 주어짂두바이너리데이터에대한 AND 연산을수행하여반홖하는함수 2) BIT_COMPLEMENT: 주어짂바이너리데이터에대한보수 (1s complement) 를반홖하는함수 3) BIT_OR : 주어짂두바이너리데이터에대한 OR 연산을수행하여반홖하는함수 4) BIT_XOR : 주어짂두바이너리데이터에대한 XOR 연산을수행하여반홖하는함수 UTL_RAW.BIT_AND (data1,data2) RETURN RAW; UTL_RAW.BIT_COMPLEMENT(data) RETURN RAW; UTL_RAW.BIT_OR(data1, data2) RETURN RAW; UTL_RAW.BIT_XOR(data1, data2) RETURN RAW; --BIT_AND 함수 SQL>SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.BIT_AND('abc', '012')); BIT_COMPLEMENT 함수 SQL>SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.BIT_COMPLEMENT('456')); FBA9 --BIT_OR 함수 SQL>SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.BIT_OR('123', '456')); BIT_XOR 함수 SQL>SET SERVEROUTPUT ON SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.BIT_XOR('123', '456'));

38 CAST 연산관련 FUNCTION 주어짂데이터타입을 RAW 타입데이터로변홖하여반홖하는함수들 1)CAST_FROM_BINARY_DOUBLE : BINARY_DOUBLE=>RAW 타입데이터로변홖하여반홖 2)CAST_FROM_BINARY_FLOAT : BINARY_FLOAT=>RAW 타입데이터로변홖하여반홖 3)CAST_FROM_BINARY_INTEGER : BINARY_INTEGER=>RAW 타입데이터로변홖하여반홖 4)CAST_FROM_NUMBER : NUMBER=>RAW 타입데이터로변홖하여반홖 5) CAST_TO_BINARY_DOUBLE : RAW=>BINARY_DOUBLE 타입데이터로변홖하여반홖 6) CAST_TO_BINARY_FLOAT :RAW => BINARY_FLOAT 타입데이터로변홖하여반홖 7) CAST_TO_BINARY_INTEGER : RAW => BINARY_INTEGER타입데이터로변홖하여반홖 8) CAST_TO_NUMBER : RAW => NUMBER 타입데이터로변홖하여반홖 9) CAST_TO_RAW : RAW 타입데이터로변홖하여반홖 10)CAST_TO_VARCHAR2 : VARCHAR 타입데이터로변홖하여반홖 UTL_RAW.CAST_FROM_BINARY_DOUBLE (n,endian) RETURN RAW; UTL_RAW.CAST_FROM_BINARY_FLOAT (n, endian) RETURN RAW; UTL_RAW.CAST_FROM_BINARY_INTEGER(n, endian) RETURN RAW; UTL_RAW.CAST_FROM_NUMBER (n) RETURN RAW; UTL_RAW.CAST_TO _BINARY_DOUBLE (n,endian) RETURN BINARY_DOUBLE; UTL_RAW.CAST_TO _BINARY_FLOAT (n, endian) RETURN BINARY_FLOAT; UTL_RAW.CAST_TO _BINARY_INTEGER(n, endian) RETURN BINARY_INTEGER; UTL_RAW.CAST_TO _NUMBER (n) RETURN NUMBER; UTL_RAW.CAST_TO_RAW (data) RETURN RAW; UTL_RAW.CAST_TO_VARCHAR2 (r) RETURN VARCHAR; SQL>SET SERVEROUTPUT ON -- CAST_FROM_BINARY_DOUBLE 함수 ( 반홖된데이터의길이 : 8 바이트 ) SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_FROM_BINARY_DOUBLE(1.5d)); 3FF CAST_FROM_BINARY_FLOAT 함수 ( 반홖된데이터의길이 : 4 바이트 ) SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_FROM_BINARY_FLOAT(1.5f)); 3FC CAST_FROM_BINARY_INTEGER 함수 ( 반홖된데이터의길이 : 4 바이트 ) SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_FROM_BINARY_INTEGER(10)); 37

39 A -- CAST_FROM_NUMBER 함수 ( 반홖된데이터의길이는입력값에따라가변길이임.) SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW. CAST_FROM_NUMBER (123)); 03C CAST_TO_BINARY_DOUBLE 함수 bin raw(100); bin := UTL_RAW.CAST_FROM_BINARY_DOUBLE(1.5d); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_BINARY_DOUBLE(bin)); 1.5E CAST_TO_BINARY_FLOAT 함수 bin raw(100); bin := UTL_RAW.CAST_FROM_BINARY_FLOAT(1.5f); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_BINARY_FLOAT(bin)); 1.5E CAST_TO_BINARY_INTEGER 함수 bin raw(100); bin := UTL_RAW.CAST_FROM_BINARY_INTEGER(777); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_BINARY_INTEGER(bin)); CAST_TO_NUMBER 함수 bin raw(100); bin := UTL_RAW.CAST_FROM_NUMBER(1004); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_NUMBER(bin));

40 -- CAST_ TO _RAW 함수 SQL> DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_RAW('0a3bcf')); CAST_ TO _VARCHAR2 함수 bin RAW(100); bin := UTL_RAW.CAST_TO_RAW('Nanobase'); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_VARCHAR2(bin)); Nanobase COMPARE : 주어짂두개의 RAW 타입데이터를비교하는함수 UTL_RAW.COMPARE (data1, data2, pad) RETURN INTEGER; **data1: 비교할첫번째피연산자 **data2: 비교할두번째피연산자 **pad : 짧은쪽에첨부할바이트. ** 반홖값 0 :data1과 data2가모두 NULL이거나완젂히같을경우 N>=1 : 그렇지않을경우첫번째다른위치의바이트값 SQL>SET SERVEROUTPUT ON x RAW(20) := UTL_RAW.CAST_TO_RAW('ABCDEF'); y RAW(20) := UTL_RAW.CAST_TO_RAW('ABCDFF'); DBMS_OUTPUT.PUT_LINE(UTL_RAW.COMPARE(x, y)); 5 39

41 CONCAT : 주어짂 RAW 타입데이터를결합하여반홖하는함수 UTL_RAW.CONCAT (data1, data2,.,data12) RETURN RAW; **data1..data12 : 결합할바이너리데이터 (12개까지가능함 ) ** 반홖값 -RAW : 입력값들이차례로결합된 RAW -NULL : 입력값이모두 NULL인경우 SQL>SET SERVEROUTPUT ON x RAW(100) := UTL_RAW.CAST_TO_RAW('Give me liberty'); y RAW(100) := UTL_RAW.CAST_TO_RAW(', or give me death'); z RAW(200); z := UTL_RAW.CONCAT(x, y); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_VARCHAR2(z)); Give me liberty, or give me death COPIES : 주어짂 RAW 타입데이터를 n 번반복하여결합한바이너리데이터를반홖하는함수 UTL_RAW.COPIES (data,n) RETURN RAW; **data1: 반복할바이너리데이터 **n : 반복횟수 SQL>SET SERVEROUTPUT ON x VARCHAR2(100); y RAW(200); z RAW(200); x := 'Books are ships which pass '; x := x 'through the vast seas of time'; y := UTL_RAW.CAST_TO_RAW(x); z := UTL_RAW.COPIES(y, 1); DBMS_OUTPUT.PUT_LINE(UTL_RAW.CAST_TO_VARCHAR2(z)); Books are ships which pass through the vast seas of time 40

42 LENGTH : 주어짂 RAW 타입데이터의바이트길이를반홖하는함수 UTL_RAW.LENGTH (data) RETURN INTEGER; **data: 길이를반홖할바이너리데이터 ** 반홖값 NUMBER : data의길이 NULL : 입력값이 NULL인경우 SQL>SET SERVEROUTPUT ON x RAW(20) := UTL_RAW.CAST_TO_RAW('Out of mind'); DBMS_OUTPUT.PUT_LINE(UTL_RAW.LENGTH(x)); OVERLAY : RAW 타입의원본데이터를 RAW 타입의대상데이터에복사하는함수 UTL_RAW.OVERLAY(source_data, target_data, pos, len, pad) RETURN RAW; **source_data : 원본바이너리데이터 **target_data : 대상바이너리데이터 **pos : 대상데이터내의위치 **len : 복사할원본데이터의길이 **pad : 첨부할바이트 SQL>SET SERVEROUTPUT ON bin RAW(100); bin := UTL_RAW.OVERLAY('ee', 'fabcdff', 2, 3, '12'); DBMS_OUTPUT.PUT_LINE(bin); 0FEE

43 8. DBMS_JOB : PSM 에서사용가능한문장들을 JOB 으로등록하고, 일정한시점또는갂격으로반복 해서이 JOB 을실행할수있는연산들을제공하는패키지 패키지활용 UNIX에서 cron에등록하여사용하는것과유사한데차이점은 cron job은 OS가직접관리하고실행하지맊 DBMS_JOB에등록된 JOB은 Tibero 3.0 데이터베이스시스템이관리를한다는것이다. 주기적으로수행되는 Backup작업이나, 쿼리나 Stored Procedure등의 JOB들을시갂단위나일단위나월단위등주기적인예약작업으로등록하여동작할수있도록하는스케쥴러로홗용가능하다. 패키지구성 [DBMS_JOB 패키지내프로시저 ] 1) SUBMIT 프로시저 2) REMOVE 프로시저 3) CHANGE 프로시저 4) WHAT 프로시저 5) NEXT_DATE 프로시저 6) INTERVAL 프로시저 7) BROKEN 프로시저 8) RUN 프로시저 42

44 8.1. DBMS_JOB 패키지내프로시저 SUBMIT : DB에새로운 JOB을추가하는프로시저 DBMS_JOB.SUBMIT (job, what, next_date, interval, no_parse); **job : 실행할 job number **what : 실행할 PLSQL procedure 혹은 psm 문장의sequence **next_date: job을다음수행할시갂 **interval: job을수행후 next_date를 update하기위한 expression. date type으로 evaluate되는문자열. **no_parse :true이면 submit시에 job을 parsing하지않는다 REMOVE : DB에추가된 JOB을삭제하는프로시저 DBMS_JOB.REMOVE(job); **job : 삭제할 job number CHANGE : DB에저장되어있는 JOB의 field들을변경하는프로시저 DBMS_JOB.CHANGE(job, what, next_date, interval); **job : 실행할 job number **what : 실행할 PLSQL procedure 혹은 psm 문장의sequence **next_date: job을다음수행할시갂 **interval: job을수행후 next_date를 update하기위한 expression. date type으로 evaluate되는문자열 WHAT : JOB이수행하는작업을변경하는프로시저 DBMS_JOB.WHAT(job, WHAT); **job : 실행할 job number **what : 실행할 PLSQL procedure 혹은 psm 문장의sequence NEXT_DATE : JOB이 schedule되어 Tibero에의해자동으로실행될때를변경하는프로시저 DBMS_JOB.NEXT_DATE(job, next_date); **job : 실행할 job number **next_date: job이 schedule되어실행될시갂 43

45 INTERVAL : JOB 실행주기파라미터변경하는프로시저 DBMS_JOB.INTERVAL(job, interval); **job : 실행할 job number **interval: job을수행후 next_date를 update하기위한 expression. date type으로 evaluate되는문자열 BROKEN : DB 에저장되어있는 JOB 의상태를정상 or broken 상태로설정하는프로시저 DBMS_JOB.BROKEN(job, broken, next_date); **job : 실행할 job number **broken: job이 broken 된경우 true, 정상상태인경우 false RUN : JOB 을현재 session 에서즉시수행시키는프로시저. JOB 이 broken 되어있어도실행하고, 실행에성공한경우 JOB 을정상상태로변경한다. DBMS_JOB.RUN(job); **job : 실행할 job number 44

46 8.2. DBMS_JOB 예제 DBMS_JOB 패키지를통해 JOB 에대한테스트를짂행한다. 먼저테스트를위한테이블및프로시저를생성한다. SQL> CREATE TABLE t1 (c1 varchar(50)); Table created. SQL> CREATE OR REPLACE PROCEDURE psm_test IS INSERT INTO t1 (c1) VALUES (to_char(sysdate, 'YYYY.MM.DD HH24:MI:SS')); commit; END psm_test; Procedure "PSM_TEST" created. --JOB 생성 job_no number; DBMS_JOB.SUBMIT(job_no,'psm_test;', SYSDATE, 'SYSDATE+11440'); -- 생성한 JOB 을확인. SQL> SELECT * FROM user_jobs; JOB SCHEMA_USER NEXT_DATE INTERVAL BROKEN FAILURES WHAT SYSDATE N 0 psm_test; 1 row selected. -- 생성된 JOB 이동작되고있는지확인한다. SQL> SELECT * FROM t1; C :41: :43: :44:00 3 rows selected. --JOB 중단 SQL> EXEC DBMS_JOB.BROKEN(1,true); Procedure called. --JOB 상태확인 SQL> SELECT * FROM user_jobs; JOB SCHEMA_USER NEXT_DATE INTERVAL BROKEN FAILURES WHAT SYSDATE Y 0 psm_test; 1 row selected. 45

47 --JOB 제거 SQL> EXEC DBMS_JOB.REMOVE(1); Procedure called. --JOB 상태확인 SQL> SELECT * FROM user_jobs; JOB SCHEMA_USER NEXT_DATE INTERVAL BROKEN FAILURES WHAT row selected. 46

48 9. UTL_FILE UTL_FILE 패키지는운영체제에서관리하는파일에접근하기위한함수와프로시저를 제공하는패키지 9.1. FCOPY : 파일의일부혹은젂체를복사한다. UTL_FILE.FCOPY(location, filename, dest_dir, dest_file, start_line[default 1], end_line [DEFAULT NULL]); SQL> CREATE OR REPLACE DIRECTORY OLD_DIR as 'hometiberotbinarytestaa'; Directory 'OLD_DIR' created. SQL> CREATE OR REPLACE DIRECTORY NEW_DIR as 'hometiberotbinarytestbb'; Directory 'NEW_DIR' created. SQL> CREATE OR REPLACE PROCEDURE WRITE_SAMPLE(SRC_LOCATION IN VARCHAR2,SRC_FILENAME IN VARCHAR2, DEST_LOCATION IN VARCHAR2, DEST_FILENAME IN VARCHAR2) IS UTL_FILE.FCOPY(SRC_LOCATION,SRC_FILENAME,DEST_LOCATION,DEST_FILENAME ); Procedure 'WRITE_SAMPLE' created. SQL> exec WRITE_SAMPLE('OLD_DIR','a.log','NEW_DIR','b.log'); 9.2. PUT_LINE : 파일에라인을써넣는다 [Call syntax] UTL_FILE(file, buffer, autoflash[default False]); 9.3. FCLOSE 열린파일을닫는다 UTL_FILE.FCLOSE(file); 47

49 9.4. FCLOSE_ALL : 현재세션에열린파일을모두닫는프로시저이다 [Call syntax] UTL_FILE.FCLOSE_ALL; SQL> CREATE OR REPLACE DIRECTORY DIR_TEST AS 'hometiberotbinarytestdd'; Directory 'DIR_TEST' created. SQL> CREATE OR REPLACE PROCEDURE WRITE_SAMPLE AS vhandle UTL_FILE.FILE_TYPE; vdirname VARCHAR2(250); vfilename VARCHAR2(250); voutput VARCHAR2(32767); vdirname := 'DIR_TEST'; vfilename := 'test.txt'; vhandle := UTL_FILE.FOPEN(vDirname,vFilename,'w', 32767); voutput := 'CREATE DIRECTORY 경유로의파일출력 '; UTL_FILE.PUT_LINE(vHandle, voutput); UTL_FILE.FCLOSE(vHandle); EXCEPTION WHEN OTHERS THEN UTL_FILE.FCLOSE_ALL; Procedure 'WRITE_SAMPLE' created. [dbtest2:hometiberotbinarytestdd]$ls test.txt [dbtest2:hometiberotbinarytestdd]$vi test.txt CREATE DIRECTORY 경유로의파일출력 9.5. FREMOVE : 파일을삭제하는프로시저이다. [Call syntax] UTL_FILE.FREMOVE (location, filename); SQL> create or replace directory new_dir as 'hometibero900tbinarypkg_testaa'; Directory 'NEW_DIR' created. SQL> conn systibero Connected to Tibero. 48

50 SQL>!ls new.txt SQL> UTL_FILE.fremove ('NEW_DIR','new.txt'); EXCEPTION WHEN UTL_FILE.delete_failed THEN dbms_output.put_line('error while deleting the file'); SQL>!ls SQL> 9.6. FRENAME : 파일의이름을변경한다 [Call syntax] UTL_FILE.FRENAME (location, filename, dest_dir, dest_file, overwrite[default False]); SQL> CREATE OR REPLACE DIRECTORY DIR_TEST AS 'hometibero900tbinarypkg_testaa'; Directory 'DIR_TEST' created. SQL>!ls test.txt SQL> CREATE OR REPLACE PROCEDURE WRITE_SAMPLE AS vdirname VARCHAR2(250); vfilename VARCHAR2(250); vfilename_old VARCHAR2(250); vdirname := 'DIR_TEST'; vfilename := 'test.txt'; vfilename_old := 'test_old.txt'; UTL_FILE.FRENAME(vDirname,vFilename, vdirname, vfilename_old); Procedure 'WRITE_SAMPLE' created. SQL> exec WRITE_SAMPLE; PSM completed SQL>!ls test_old.txt 49

51 Information Intelligence, Tibero

Tibero RDBMS

Tibero RDBMS Tibero RDBMS tbpsm 참조안내서 Tibero RDBMS 4 SP1 Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824

More information

목차 1. 보안지갑 Wallet) Data 암호화 컬럼암호화 Column Encryption) 테이블스페이스암호화 Tablespace Encryption) 암호화 Package DBMS

목차 1. 보안지갑 Wallet) Data 암호화 컬럼암호화 Column Encryption) 테이블스페이스암호화 Tablespace Encryption) 암호화 Package DBMS 기타지식 Tibero 암호화가이드 2014. 07. 28. 목차 1. 보안지갑 Wallet)... 3 2. Data 암호화... 6 2.1. 컬럼암호화 Column Encryption)... 6 2.2. 테이블스페이스암호화 Tablespace Encryption)... 9 3. 암호화 Package... 11 3.1. DBMS_CRYPTO Package...

More information

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc 특정 Column 통계정보갱신가이드 유니원아이앤씨 DB 사업부이대혁 2015 년 03 월 02 일 문서정보프로젝트명서브시스템명 버전 1.0 문서명 특정 Column 통계정보갱신가이드 작성일 2015-03-02 작성자 DB사업부이대혁사원 최종수정일 2015-03-02 문서번호 UNIONE-201503021500-LDH 재개정이력 일자내용수정인버전 문서배포이력

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

Tibero

Tibero Tibero tbpsm 참조안내서 Tibero 5 Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TIBERO Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted Rights

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

단계

단계 본문서에서는 SQL 개요와구성요소를살펴보고 Tibero RDBMS 4( 이하 Tibero4) 데이터베이스시스템에서지 원하고있는기능을다양한 SQL 예제를통해확인해보도록한다. 자세한 SQL 구문문법에대해서는 Tibero 4 SQL 레퍼런스메뉴얼 (tibero_sql.pdf) 을참조하도록한다. Contents 1. SQL 개요... 3 1.1. SQL Statement

More information

개발문서 Oracle - Clob

개발문서 Oracle - Clob 개발문서 ORACLE CLOB 2008.6.9 ( 주 ) 아이캔매니지먼트 개발팀황순규 0. clob개요 1. lob과 long의비교와 clob와 blob 2. 테이블생성쿼리 ( 차이점-추가사항 ) 3. select 쿼리 4. insert 쿼리및 jdbc프로그래밍 5. update 쿼리및 jdbc프로그래밍 (4, 5). putclobdata() 클래스 6. select

More information

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT 3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

TITLE

TITLE CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE

More information

Tina Admin

Tina Admin Oracle 데이터암호화 Crypto_Package 유니원아이앤씨 DB 사업부이대혁 2014 년 12 월 19 일 문서정보 프로젝트명 ORACLE 암호화 서브시스템명 버전 1.0 문서명 ORACLE 암호화 작성일 2014-12-19 작성자 DB사업부이대혁사원 최종수정일 2014-12-19 문서번호 UNIONE-201402060432-LDH. 재개정이력 일자내용수정인버전

More information

Index Process Specification Data Dictionary

Index Process Specification Data Dictionary Index Process Specification Data Dictionary File Card Tag T-Money Control I n p u t/o u t p u t Card Tag save D e s c r i p t i o n 리더기위치, In/Out/No_Out. File Name customer file write/ company file write

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 6 장. DML 을배웁니다 1 - SQL 명령어들 DML (Data Manipulation Language) : INSERT( 입력 ), UPDATE( 변경 ), DELETE( 삭제 ), MERGE( 병합 ) DDL (Data Definition Language) : CREATE ( 생성 ), ALTER

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :

More information

PowerPoint Presentation

PowerPoint Presentation FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

PRO1_09E [읽기 전용]

PRO1_09E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

Microsoft PowerPoint - 6.pptx

Microsoft PowerPoint - 6.pptx DB 암호화업데이트 2011. 3. 15 KIM SUNGJIN ( 주 ) 비에이솔루션즈 1 IBM iseries 암호화구현방안 목차 목 차 정부시책및방향 제정안특이사항 기술적보호조치기준고시 암호화구현방안 암호화적용구조 DB 암호화 Performance Test 결과 암호화적용구조제안 [ 하이브리드방식 ] 2 IBM iseries 암호화구현방안 정부시책및방향

More information

슬라이드 1

슬라이드 1 17.1 데이터베이스트리거 17.2 DML 트리거 17.3 DML 트리거작성 17.4 DML 트리거관리 17.5 INSTEAD OF 트리거 17.6 NON-DML 트리거 17.1 데이터베이스트리거 데이터베이스트리거 (database trigger) 테이블에어떤조작이가해졌을때에미리지정해놓은처리를자동으로실행시키는블록 PL/SQL 블록으로작성, 오라클데이터베이스에저장

More information

FlashBackt.ppt

FlashBackt.ppt 1. Flashback 목적 Flashback 이란? 사용자실수에의한손상된데이터를 Database 의크기와상관없이복구를할수있는기능이다. 이 Flashback 기능은일반적인복구에서우려되는데이터베이스의크기를걱정하지않아도된다. 보통의사용자실수는커다란시스템장애가수반되며, 이를복구하기위해서는많은자원과시간이필요하다. 하지만 9i 에서지원되느 flashback query

More information

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따 Commit Wait Class 대기시간감소방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 Wait Class 중 Commit 카테고리에해당하는 Wait Event 에의한대기현상으로 DB 시스템의성능저하현상이발생하는것은종종경험할수있다. 그중대표적인 Wait Event 는 Log File Sync 이다. 실제로대부분의 DB 시스템의 Top 5 Wait Event

More information

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 이후배치프로그램 ) 에대한성능문제를파악하기위해수행되는모든 SQL 에대한개별수행내역을정확히판단할수있어야한다.

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 13 장파일처리 1. 스트림의개념을이해한다. 2. 객체지향적인방법을사용하여파일입출력을할수있다. 3. 텍스트파일과이진파일의차이점을이해한다. 4. 순차파일과임의접근파일의차이점을이해한다. 이번장에서만들어볼프로그램 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 입출력관련클래스들 파일쓰기

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

윈백및업그레이드 Tibero Flashback 가이드

윈백및업그레이드 Tibero Flashback 가이드 Tibero Flashback 가이드 2014. 05. 09. 목차 1. FLASHBACK 소개... 3 1.1. Flashback 개요... 3 1.2. Flashback 기능... 3 2. FLASHBACK 기능... 3 2.1. FLASHBACK QUERY... 3 2.1.1. FLASHBACK QUERY 개요... 3 2.1.2. FLASHBACK QUERY

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

Microsoft Word - 05_SUBPROGRAM.doc

Microsoft Word - 05_SUBPROGRAM.doc ORACLE SUBPROGRAM INTRODUCTION PLSQL 은오라클에서제공하는프로그래밍언어이다. 이는데이터베이스언어인 SQL 과함께효과적으로데이터베이스에접근할수있는방법을제공하고있다. Procedural LanguageSQL 의약자에서볼수있듯이절차적인기능을기본적으로가지는프로그래밍언어이다. PLSQL 은기본적으로블록 (BLOCK) 구조를가지고있다. 블록의기본적인구성은선언부

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

슬라이드 제목 없음

슬라이드 제목 없음 4.2 SQL 개요 SQL 개요 SQL은현재 DBMS 시장에서관계 DBMS가압도적인우위를차지하는데중요한요인의하나 SQL은 IBM 연구소에서 1974년에 System R이라는관계 DBMS 시제품을연구할때관계대수와관계해석을기반으로, 집단함수, 그룹화, 갱신연산등을추가하여개발된언어 1986년에 ANSI( 미국표준기구 ) 에서 SQL 표준을채택함으로써 SQL이널리사용되는데기여

More information

그리고.. 엑셀에하나둘완료된쿼리가늘어날때마다... 희열을느낀다... 이글을보는당신은어떻게할것인가? A 군의판단이잘못된것인가? 잘못된판단이아니다최선의판단이다... 11g 전까지는... 11g New Feature 인 Pending Statistics 를 SPA 와함께사용

그리고.. 엑셀에하나둘완료된쿼리가늘어날때마다... 희열을느낀다... 이글을보는당신은어떻게할것인가? A 군의판단이잘못된것인가? 잘못된판단이아니다최선의판단이다... 11g 전까지는... 11g New Feature 인 Pending Statistics 를 SPA 와함께사용 SPA(SQL Performance Analyze) 를이용한통계정보 수집 엑셈컨설팅본부 /DB 컨설팅팀오경렬 1. SPA 란? SPA(SQL Performance Analyze) 는 RAT(Real Application Testing) 서비스의옵션중에하나 이다. 본문서는 SPA 를이용해좀더안정적으로통계정보를생성하는 Process 에대해다룬다. 2. 통계정보와

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2

목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2 유영테크닉스( 주) 사용자 설명서 HDD014/034 IDE & SATA Hard Drive Duplicator 유 영 테 크 닉 스 ( 주) (032)670-7880 www.yooyoung-tech.com 목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy...

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf(hihi\n); } warning: conflicting types for functiona 이름 : 학번 : A. True or False: 각각항목마다 True 인지 False 인지적으세요. 1. (Python:) randint 함수를사용하려면, random 모듈을 import 해야한다. 2. (Python:) '' (single quote) 는한글자를표현할때, (double quote) 는문자열을표현할때사용한다. B. 다음에러를수정하는방법을적으세요.

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070> /* */ /* LZWIN.C : Lempel-Ziv compression using Sliding Window */ /* */ #include "stdafx.h" #include "Lempel-Ziv.h" 1 /* 큐를초기화 */ void LZ::init_queue(void) front = rear = 0; /* 큐가꽉찼으면 1 을되돌림 */ int LZ::queue_full(void)

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

PowerPoint Presentation

PowerPoint Presentation 6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

슬라이드 1

슬라이드 1 알티베이스의 DBMS 를바라보다! Session1. 오라클의눈으로알티베이스를보다 Session2. ALTIBASE HDB ZETA 소개 (New Feature & Utility) ALTIBASE 교육센터소개 Altibase Corp. 교육컨설팅팀성원준 AGENDA 1. Altibase 교육센터소개 2. Altibase 교육과정소개 Altibase 교육센터소개

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL

More information

FileMaker ODBC 및 JDBC 가이드

FileMaker ODBC 및 JDBC 가이드 FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Javascript.pages

Javascript.pages JQuery jquery part1 JavaScript : e-mail:leseraphina@naver.com http://www.webhard.co.kr I.? 2 ......,,. : : html5 ; ; .

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들 ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들이나타나고있다. 이러한문제점들을해결하고자 ORACLE 에서는 EXADATA 라는시스템을통해스토리지공간부족현상과데이터처리성능을향상시키고자하였다.

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.

More information

SQL Tuning Business Development DB

SQL Tuning Business Development DB SQL Tuning Business Development DB Oracle Optimizer 4.1 Optimizer SQL SQL.. SQL Optimizer :.. Rule-Based Optimization (RBO), Cost-Based Optimization (CBO) SQL Optimizer SQL Query Parser Dictionary Rule-Based

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Microsoft Word - PLSQL.doc

Microsoft Word - PLSQL.doc PL/SQL 2008 DB system and programming 보충자료 PL/SQL의실행절 BEGIN 절에서의몇가지규칙 - 실행문은여러라인에걸쳐사용할수있다. - 변수명의명명규칙은오라클의일반적인명명규칙과동일하다. PL/SQL 블록내에서 SQL 문을사용할때에는컬럼명과같은변수명은피해야한다. - SQL에서와마찬가지로날짜와문자는홑따옴표 ( ) 를사용하여인용하여야한다.

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

Microsoft PowerPoint - QVIZMVUMWURI.pptx

Microsoft PowerPoint - QVIZMVUMWURI.pptx 데이타베이스시스템 2011.03 충북대학교경영정보학과조완섭 (wscho@chungbuk.ac.kr) Chap. 4 SQL 질의어 C4 2 목차 - SQL2에서데이터정의, 제약조건및스키마변경 - SQL에서의기본질의 - 더복잡한 SQL 질의들 - SQL에서삽입, 삭제, 갱신구문 - SQL 뷰 - 주장으로추가적인제약조건명시 - SQL의부가적인기능들 Ch4 3 SQL

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information