이전것/데이터베이스 26

ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다

출처 : http://ooz.co.kr/95오라클에서 쿼리를 짜고 돌리는데, 아래와 같은 에러 메시지가 떴습니다..!! ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다 무슨 문제일까요?다른 경우에도 위와 같은 문제가 발생하는지 모르겠지만, 일단 MERGE INTO 구문에서 발생합니다. 제 경우에도 그랬습니다.^^ MERGE INTO는 어떻게 사용되는지 아래 간략하게 그 사용 구문 형태를 작성하였으며, 해당 오류가 발생한 경우라면 보통 MERGE INTO에 대해 이미 어느정도 숙지하고 있는 것일 것이므로, 아래의 사용법 정도로만 설명하고, 자세한 사용법은 생략합니다. MERGE INTO table_name alias -- 작업 대상 테이블 명 (실제 데이터를 INSERT 또는 UPDA..

4.1. 데이터의 삽입, 수정, 삭제

출처 http://www.gurubee.net/lecture/1016INSERTINSERT 명령어는 테이블 안에 데이터를 삽입하는 역할을 한다. INSERT 문법INSERT INTO table_name(column1, column2, ...)VALUES (데이터, '데이터',...); INSERT INTO table_name(column1, column2,...)SELECT column1, column2,...FROM table_nameWHERE 조건 ; - 실제 데이터는 VALUES 괄호()안에 입력하고 문자열은 단일 따옴표(' ')로 둘러싼다.- 각각의 데이터 구분은 ","로 한다.- 테이블 이름 옆에 () 생략시에는 자동으로 모든 컬럼을 VALUES() 안에 입력 시킨다. INSERT 예제 -- 모..

3.5. 테이블의 관리

출처 : http://www.gurubee.net/lecture/1014테이블 컬럼의 관리테이블의 컬럼은 ADD, MODIFY, DROP 연산자를 통해서 관리 할 수 있습니다. ADD 연산자테이블에 새로운 컬럼을 추가 할 때 사용 한다. -- VARCHAR2의 데이터 형을 가지는 addr 컬럼을 emp 테이블에 추가SQL> ALTER TABLE emp ADD (addr VARCHAR2(50)); MODIFY 연산자테이블의 컬럼을 수정하거나 NOT NULL 컬럼으로 변경 할 수 있으며, 컬럼이 이미 데이터를 가지고 있을 경우 다른 데이터 형으로 변경이 불가능하다.-- ename 컬럼을 VARCHAR2 50자리로 수정한 예제.SQL> ALTER TABLE emp MODIFY ( ename VARCHAR2(5..

3.4. LOB, LONG, LONG RAW 데이터 타입 간의 비교

LOB, LONG, LONG RAW 데이터 타입의 비교- 테이블의 한 ROW에 여러 LOB 컬럼이 있을 수 있는 반면, LONG 또는 LONG RAW 컬럼은 한 ROW에 하나 만 사용 할 수 있다. - LOB는 사용자 정의 데이터 타입 ( user-defined datatype)의 속성 (attribute)으로 사용 될 수 있는 반면, LONG이나 LONG RAW는 속성으로 사용 될 수 없다. - LONG 또는 LONG RAW는 값 전체가 테이블 내에 저장이 되는 반면, LOB는 테이블 컬럼 내에 LOB locator만 저장이 된다. - BLOB과 CLOB (내부 LOB) 데이터는 별도의 테이블 스페이스에 저장시킬 수 있으며, BFILE (외부 LOB) 데이터는 데이터베이스 외부의 별도 파일로 존재한다...

3.3. 오라클 데이터 타입

출처 http://www.gurubee.net/lecture/1380 - 관계형 데이터베이스에서 제공하는 데이터 타입은 대개 CHAR, VARCHAR2, NUMBER, DATE, LONG, RAW, LONG RAW, ROWID 타입으로 분류한다.- 원하는 정보를 가장 효율적으로 처리하기 위해서 적절한 데이터 타입의 선정이 필요하다.- 적절하지 못한 데이터 타입의 선정은 수행속도를 나쁘게 하고 불필요한 자원을 낭비를 가져온다. VARCHAR2 타입- 가변길이 문자형 데이터타입- 최대 길이 : 2000 바이트 (반드시 길이 지정)- 다른 타입에 비해 제한이 적다- 일부만 입력시 뒷부분은 NULL- 입력한 값의 뒷부분에 있는 BLANK도 같이 입력- 전혀 값을 주지 않으면 NULL 상태 입력- 지정된 길이보다..

3.2. 테이블의 제약조건

출처 : http://www.gurubee.net/lecture/1013제약조건 : 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러가지 규칙을 적용해 놓는거라 생각하면된다. 간단하게 테이블안에서 데이터의 성격을 정의하는 것이 바로 제약조건이다.- 제약조건은 데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질이다.- 모든 제약조건은 데이터 사전(DICTIONARY)에 저장 된다.- 의미있는 이름을 부여했다면 CONSTRAINT를 쉽게 참조 할 수 있다.- 표준 객체 명명법을 따르는 것이 좋다.- 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(ALTER) 명령어를 통해서도 추가가 가능하다.- NOT NULL 제약조건은 반드시 컬럼 레벨에서만 정의가 가능하..

3.1. 테이블의 생성

출처 : http://www.gurubee.net/lecture/1012 테이블은 실제로 데이터들이 저장되는 곳이라고 생각하면 쉽게 이해할 수 있으며, CREATE TABLE 명령어를 이용해서 테이블을 생성 할 수 있다. 테이블- 테이블은 데이타베이스의 기본적인 테이타 저장 단위이다.- 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하며 레코드와 컬럼으로 구성된다.- 관계형 데이타베이스가 아닌 예전의 데이타 베이스 용어에서는 파일과 테이블이, 필드와 컬럼이, 그리고 레코드와 행이 동일시 되었다.- 테이블은 시스템 내에서 독립적으로 사용되길 원하는 엔티티를 표현 할 수 있다. 예를 들면, 회사에서의 고용자나 제품에 대한 주문은 테이블로 표현가능하다.- 테이블은 두 엔티티 간의 관계를 표현할 ..

2.3.4. 오라클 데이터 베이스를 설치하면 기본적으로 생성되는 Role

출처 : http://www.gurubee.net/lecture/1345 오라클 데이터베이스를 생성하면 기본적으로 몇 가지의 ROLE이 생성된다. DBA_ROLES 데이터 사전을 통하여 미리 정의된 ROLE을 조회 할 수 있다. SQL> SELECT * FROM DBA_ROLES; ROLE PASSWORD AUTHENTICAT-------------------------------------- -------------- ----------------XDBADMIN NO NONEXDB_SET_INVOKER NO NONEAUTHENTICATEDUSER NO NONEXDB_WEBSERVICES NO NONEXDB_WEBSERVICES_WITH_PUBLIC NO NONEXDB_WEBSERVICES_OVER_HT..

2.3.3. 롤(Role)

출처 : http://www.gurubee.net/lecture/1010 롤(ROLE)은 사용자에게 허가 할 수 있는 권한들의 집합이라고 할 수 있다. 롤(ROLE)- ROLE을 이용하면 권한 부여와 회수를 쉽게 할 수 있다.- ROLE은 CREATE ROLE 권한을 가진 USER에 의해서 생성된다.- 한 사용자가 여러개의 ROLE을 ACCESS 할 수 있고, 여러 사용자에게 같은 ROLE을 부여 할 수 있다.- 시스템 권한을 부여하고, 취소할 때와 동일한 명령을 사용하여 사용자에게 부여하고, 취소한다.- 사용자는 ROLE에 ROLE을 부여할 수 있다.- 오라클 데이터베이스를 설치하면 기본적으로 CONNECT, RESOURCE, DBA ROLE이 제공된다. 아래의 그림처럼 DBA가 유저들에게 권한을 부여..