본문 바로가기

DataBase

DATABASE LINK 사용 방법 먼저 한글 데이터간의 전달을 위해 두 DBMS간의 character set이 같아야 합니다. character set을 확인하는 방법. sqlplus system/manager select * from v$nls_parameters; nls_characterset에 대한 값이 나옵니다. 예를 위해 다음과 같은 환경을 가정하겠습니다. HOST NAME: HP7 - SUN7 ORACLE_SID: ORA7 - ORATEST 1) HP7에서 SUN7로 DB LINK 생성하기. scott/tiger 로 Login SQL*NET V1의 경우 SQL> create public database link HP7TOSUN7 connect to scott identified by tiger using 't:SUN7:ORAT.. 더보기
[퍼옴]COLD BACKUP(오프라인 백업) ▣ COLD BACKUP(오프라인 백업) 오라클 Technical Bulletins No. 10167를 참고해서 작성 했습니다. Cold Backup이란 오라클 shutdown후 datafile, redo log file, control file, parameter file등을 OS의 복사명령으로 백업을 수행하는 방법을 말합니다. 백업받을 파일들의 목록은 v$datafile, v$logfile, v$controlfile에서 찾을 수 있습니다. - 장점 : 읽기 일관성이 보장됨, 가장 간편합니다. - 단점 : 오라클 shutdown 필요하므로 백업받는 동안 데이터베이스를 사용할 수 없습니다. 백업이 수행된 시점까지만 복구가 가능합니다 - 콜드 백업은 데이타베이스가 정상적으로 SHUTDOWN 된 상태에서 데.. 더보기
[퍼옴]CHAR 와 VARCHAR2 의 차이 CHAR DATATYPE은 FIXED LENGTH CAHRACTER STRING을 저장합니다. COLUMN LEGTH는 1 에서 255BYTES 까지의 DATA를 저장할 수 있읍니다. COLUMN길이가 10 으로 정의되었을때 한번 INSERT 문장을 통해 5 BYTES를 입력하였다면 나머지 5 BYTES는 SPACE처리되어 그 DATA의 SIZE는 10 BYTE가 됩니다. 반면에 VARCHAR2 DATATYPE은 VARIABLE-LENGTH CHARACTER STRINGS을 저장합니다. COLUMN LENGTH는 1에서 4000BYTES 까지의 DATA를 저장할수 있읍니다. COLUMN길이가 10 으로 정의되었을때 한번 INSERT 문장을 통해 5 BYTES를 입력하였다면 나머지 5 BYTES는 NULL.. 더보기
[퍼옴]Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 -- 테스트 테이블 생성 SQL>CREATE TABLE test_str( val varchar2(10)); -- 테이블에 아래와 같이 특수문자를 인서트 할경우 SQL> INSERT INTO test_str VALUES('Q&A'); a의 값을 입력하십시오: -- 이런 문장이 나옵니다.. -- 특수문자를 갖는 데이터를 인서트 하기 위해서는 다음과 같은 세 가지 해결 방법이 있습니다. ▒ 첫번째 방법 SQL*Plus에서 SET DEFINE OFF나 SET SCAN OFF를 실행하여 Substitution Variable(&)을 Turn Off시킨다. SQL> SET DEFINE OFF SQL> INSERT INTO test_str VALUES('Q&A'); 1 개의 행이 만들어졌습니다. SQL>SELECT .. 더보기
[퍼옴]한글을 2byte로 계산하여 리턴 받으려면(LENGTH와 LENGTHB함수) ◈ LENGTH 함수와 LENGTHB 함수 오라클에서 LENGTH 함수를 사용하면 한글을 1byte로 계산하여 리턴 합니다. 한글을 2byte로 계산하여 리턴 받으려면 LENGTHB 함수를 사용해야 합니다. LENTGTHB 함수는 byte 단위로 계산을 합니다. -- LENGTH 함수 SQL>SELECT name, LENGTH(name) LEN FROM lentest; NAME LEN -------------------- ---------- 오라클 3 oracle 6 -- LENGTHB 함수 SQL>SELECT name, LENGTHB(name) LEN FROM lentest; NAME LEN ------------------- ---------- 오라클 6 oracle 6 더보기
[퍼옴]페이징 기법 자바에서 개발하면서 페이지처리에 대한 기준을 만들고자 정리 하였습니다. 프로그램에서는 SQL 그대로 작성해 주고, 페이지 처리는 SQL 유틸에서 파싱하면 될 것입니다. 물론, SQL 유틸은 프로젝트 팀에서 별도로 만들던가, 프레임웍을 도입해서 사용하면 되겠죠. > http://asktom.oracle.com/pls/ask/f?p=4950:8:4364635541175556421::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:76812348057 사전사항. 1. Sorting이 없을 경우 가능하다면 Sorting 하지 않도록 합니다. 2. 메인 SQL에서 SELECT ROWNUM NUM은 SQL작성 시 제외합니다. 3. 메인 SQL의 ROWNUM은 SQL 유틸에서 자동파싱처리를 .. 더보기
[퍼옴]파티션 테이블의 관리 1.Partition을 추가하는 방법 empno에 대해서 Partition을 추가 하고 싶은 경우 다음과 같이 할 수 있습니다. SQL>ALTER TABLE emp_pt ADD PARTITION emp_p4 VALUES less than (9000) TABLESPACE test; 테이블이 변경되었습니다. ALTER TABLE 테이블명 ADD PARTITIOM 파티션명 VALUES 범위 TABLESPACE 테이블스페이스명 으로 empno값이 9000이전의 값을 가지는 파티션 emp_p4를 추가했습니다. 2. 특정 Partition을 삭제하는 방법 Partition을 없애고 싶은 경우는 DROP PARTITION 명령어를 사용하면 됩니다. SQL>ALTER TABLE emp_pt DROP PARTITION .. 더보기
[퍼옴]질문과 답변에 올라온 오라클 TIP들 1. 10%를 랜덤하게 가져옵니다.(오라클 8.1.7 이상부터 지원이 됩니다.) [하얀그림자님 답변글] SQL> SELECT * FROM table_name SAMPLE (10); 2. 오라클에서 CASE문 사용 예제 [하얀그림자님 답변글] SQL>SELECT col, CASE WHEN col >= 0 AND col = 6 AND col = 14 AND col = 22 THEN 'D' END FROM table_name; 3. 해당년도의 선택된 주의 첫번째 날자를 구하고 싶습니다.[석철희님 답변글] [질문] 해당년도의 선택된 주의 첫번째 날자를 구하고 싶습니다. 예로 2002년 .. 더보기
[퍼옴]중복된 RECORD 삭제 방법 Oracle Technical Bulletins No. 10185 참고.. 중복된 RECORD 삭제 방법 ================================ 중복된 RECORD를 삭제하는 방법은 2가지가 있습니다. 방법1) SQL> CREATE TABLE emp2 AS SELECT distinct * FROM emp; SQL> DROP TABLE emp; SQL> RENAME emp2 TO emp; 방법2) 중복된 데이터중에서 ROWID가 큰 값을 제거 SQL> DELETE FROM emp a WHERE rowid > (SELECT MIN(ROWID) FROM emp b WHERE b.empno = a.empno); en-core에서 본 白面書生(www.okjsp.pe.kr)님의 글도 참고해서 넣.. 더보기
제약 조건의 확인 1. 테이블에 걸려있는 제약 조건의 확인 - USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있습니다. - USER_CONSTRAINTS : 유저가 소유한 모든 제약 조건을 불 수 있습니다. 이 두개의 데이터사전을 참조 하면 됩니다. SQL> SELECT SUBSTR(A.COLUMN_NAME,1,15) COLUMN_NAME, -- 컬럼명 DECODE(B.CONSTRAINT_TYPE, 'P','PRIMARY KEY', 'U','UNIQUE KEY', 'C','CHECK OR NOT NULL', 'R','FOREIGN KEY') CONSTRAINT_TYPE, -- 제약조건 TYPE A.CONSTRAINT_NAME CONSTRAINT_NAME -- 제약 조건 명 FROM USER_CONS.. 더보기