본문 바로가기

DataBase/Oracle

[펌]LIKE연산자에서 '%'와 '_'를 포함하는 단어 검색 방법 LIKE연산으로 '%'나 '_'가 들어간 문자를 검색하기 위해서는 ESCAPE를 사용해야 합니다. '_'나 '%'앞에 ESCAPE로 특수 문자를 지정하면 검색할 수 있습니다. 1. '_' 가 있는 문자 검색 SQL>SELECT loc FROM dept WHERE loc like '%#_%' ESCAPE '#'; LOC ------------- NEW_YORK 위 문장에서 #대신 다른 문자가 와도 됩니다. (아래같이 @같은 특수 문자나, A같은 아파벳이나, 9같은 숫자가 와도 똑같은 결과가 나오네요) 아래의 결과들을 한번 비교해 보시기 바랍니다. SQL> SELECT loc FROM dept WHERE loc like '%N%@_%' ESCAPE '@' LOC ------------- NEW_YORK SQ.. 더보기
[펌]IMPORT ▣ IMPORT ? ⊙ EXPORT 덤프 파일을 읽어서 그 안에 저장되어 그 파일안에 있는 명령을 실행시킵니다. ⊙ 데이터베이스를 복구하거나 재구성하기위해 사용될 수 있습니다. ⊙ 기본적으로 IMPORT는 각 테이블을 IMPORT한 후 COMMIT을 합니다. ▣ Import Parameter - userid : IMPORT를 실생시키는 계정의 username/password명 - buffer : 데이터를 행들을 가져오는데 사용되는 buffer의 bytes수 - file : IMPORT될 EXPORT 덤프 파일명 - show : 파일 내용이 화면에 표시되어야 할 것인가를 나타냄(Y/N 플래그) - ignore : IMPORT중 CREATE명령을 실행할 때 만나게 되는 에러들을 무시할 것인지 결정 (Y/N .. 더보기
[펌]EXPORT ▣ EXPORT ? ⊙ 오라클에서 제공하는 논리적인 백업에 사용되는 유틸리티로써, binary file형태로 기록합니다. ⊙ 데이터베이스가 가동중인 상태에서 실행합니다. ⊙ 전체 데이터베이스, 특정 사용자, 특정 테이블들을 엑스포트 시킬 수 있습니다. ⊙ 권한, 익덱스, 또한 연관된 제약조건들과 같이 테이블들과 연관되는 데이터 딕셔너리 정보도 엑스포트 시킬 것인가를 선택할 수 있습니다. ⊙ 마지막 엑스포트 이후로변경된 테이블들에 대해서만 엑스포트 작업을 실행 할 수도 있습니다. ▣ Export Paramger - userid : EXPORT를 실행시키고 있는 username/password명. - buffer : 데이터 행들을 가져오는데 사용되는 버퍼의 크기. - file : 생성되는 EXPORT덤프 파.. 더보기
[펌]EXECUTE IMMEDIATE를 이용한 Dynamic SQL 1. EXECUTE IMMEDIATE를 이용한 Dynamic SQL Oracle 8i에서의 Dynamic SQL은 두가지 방법이 있습니다. 첫번째 방법은 "EXECUTE IMMEDIATE" 절을 사용하여 embedded dynamic sql을 구현하는 방법이고, 두번째 방법은 선언되어지는 것 대신에 실행시에 문장을 보내는 ref cursor의 확장된 개념으로 query를 위해 사용되어지는 방법 입니다. 여기서는 EXECUTE IMMEDIATE를 이용한 Dynamic SQL에 대해서 알아보겠습니다. [Syntax] EXECUTE IMMEDIATE dynamic_sql_string [INTO {define_var1 [, define_var2] ... | plsql_record }] [USING [IN | O.. 더보기
[펌]DELETE, DROP, TRUNCATE의 비교 TABLE에서 행을 삭제하는 세 가지 OPTION의 비교 TABLE에서 모든 행을 삭제하는 방법에는 다음과 같은 세 가지 OPTION이 있다. 1. DELETE 명령어 사용 DELETE 명령어를 사용하여 TABLE의 행을 삭제할 수 있다. 예를 들어 EMP TABLE에서 모든 행을 삭제하는 명령문은 다음과 같다. SQL>DELETE FROM emp; ◈ DELETE 문을 사용할 때 TABLE이나 CLUSTER에 행이 많으면 행이 삭제 될 때마다 많은 SYSTEM 자원이 소모된다. 예를 들어 CPU 시간,REDO LOG 영역, TABLE이나 INDEX에 대한 ROLLBACK SEGMENT 영역 등의 자원이 필요하다. ◈ TRIGGER가 걸려있다면 각 행이 삭제될 때 실행된다. ◈ 이전에 할당되었던 영역은 .. 더보기
[펌]DBMS_RLS: 행단위 보안 설정 이 강좌의 원문은 "Keeping Information Private with VPD" 입니다. , dbakorea.pe.kr의 강명규님께서 번역하여 작성하신 강좌를 일부 보충, 수정해서 올렸습니다. 오라클의 RLS(Row Level Security)기능은 사용자에게 VPD(Virtual Private Database)를 제공해 줍니다. RLS는 8i부터 지원되며, 행 레벨까지 접근권한을 지정할 수 있게 해줍니다. 쉽게 말해서 DBMS_RLS를 설정하고 쿼리를 던지면 자동으로 설정된 WHERE절이 추가되어 실행되며, 테이블 데이타 Row의 Access를 제한 할 수 있는 기능을 말합니다. 아래 강좌에서는 4개의 오라클 사용자(bank,secman, lion, lara)가 생성됩니다. - bank 계정은 .. 더보기
[펌]DB에 등록된 유저의 정보와, 유저별 Object 정보 조회 ◈ DB에 등록된 유저의 정보 조회 - dba_users 데이터 사전을 이용하시면 됩니다. SQL>col username format a15 SQL>col default_tablespace format a15 SQL>col temperary_tablespace format a15 SQL>SELECT username, default_tablespace, temporary_tablespace, created FROM dba_users USERNAME DEFAULT_TABLESP TEMPORARY_TABLESPACE CREATED --------------- --------------- ------------------------------ -------- SYS SYSTEM TEMP 01/03/25 SYST.. 더보기
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.. 더보기