본문 바로가기

DataBase

SQL*Loader 예제 연습용 테이블 생성 SQL>CREATE TABLE DEPT_TEST( DEPTNO NUMBER NOT NULL, DNAME VARCHAR2(14), LOC VARCHAR2(13)) 테이블이 생성되었습니다. SQL>CREATE TABLE EMP_TEST( EMPNO NUMBER NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), D0EPTNO NUMBER(2)) 테이블이 생성되었습니다. 제어파일에 데이터가 들어가 있는 경우 - DEPT_TEST 테이블에 insert하는 예제 입니다. - 각 데이터의 레코드의 필드를 ','로 구분을 했습니다 ===========.. 더보기
NVL2 함수의 사용 NVL2라는 함수 DECODE랑 조금 비슷한 놈 같기도 하고요.. 참 편한놈이네용.. 문법 NVL2(expr,expr1,expr2); expr의 값이 null이 아닐 경우에는 expr1의 값을 반환 하고요 null일 경우에는 expr2의 값을 반환 합니다. 예제) -- 보통 SQL문을 실행 했을 경우 SQL> SELECT ename, comm FROM emp; ENAME COMM ---------------- ---------- SMITH ALLEN 300 WARD 500 JONES MARTIN 1400 BLAKE CLARK SCOTT KING TURNER 0 ADAMS -- NVL함수를 사용 했을 경우 SQL>SELECT ename, NVL(comm, 0) comm FROM emp; ENAME COMM.. 더보기
LONG TYPE을 LOB TYPE으로 CONVERSION하는 방법(TO_LOB) LONG TYPE을 LOB TYPE으로 CONVERSION하는 방법(TO_LOB) Bulletin no 12143 참고 Oracle8 부터 LONG이나 LONG RAW Type과는 별도로 LOB Type이 추가 되었습니다. LONG 이나 LONG RAW Type을 CLOB 또는 BLOB Type으로 변경하기 위해서는 Oracle8에서는 데이타를 다시 입력해야 했지만, 오라클 8i부터는 TO_LOB Function을 이용해서 Long Type의 Data를 LOB Type으로 쉽게 Conversion할 수 있습니다. TO_LOB Function은 보통 CREATE TABLE .. AS SELECT .. 문장이나 INSERT INTO .. SELECT .. 문장을 이용해서 쉽게 사용 할 수 있습니다. [예제1.. 더보기
[펌]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.. 더보기