Database/Oracle(26)
-
[Oracle] 에러코드 1
ORA-00000 성공적인 정상 종료입니다. ORA-00001 유일성 제약조건(%s.%s)에 위배됩니다. ORA-00017 트레이스 이벤트 설정이 세션에 요구되었습니다. ORA-00018 최대 세션 수를 초과했습니다. ORA-00019 최대 세션 라이선스 수를 초과했습니다. ORA-00020 최대 프로세스 수(%s)를 초과했습니다. ORA-00021 세션이 다른 프로세스에 첨부되어 있음; 세션을 변경할 수 없습니다. ORA-00022 부적절한 세션 번호; 액세스가 거절되었습니다. ORA-00023 세션이 프로세스 고유의 메모리를 참조함; 세션을 분리할 수 없습니다. ORA-00024 단일 프로세스 모드에서는 하나 이상의 프로세스가 로그인할 수 없습니다. ORA-00025 %s에 메모리를 할당하는데 실패했..
2010.06.04 -
[Oracle] DB에서 INDEX 제대로 사용하기
DB에서 INDEX 제대로 사용하기 작성자 : 김문규 최초 작성일 : 2009.5.18 데브피아에서 기가 막히게 좋은 전문가 글을 찾았습니다. 간단하게 정리해 봅니다. 인덱스를 사용하기를 기대하지만 그렇지 않은 기본적이고 대표적인 예입니다. 1. 인덱스 컬럼을 변형하여 비교할 때 BAD WHERE TO_CHAR(HIREDATE,'YYYYMMDD') = '19980518'; GOOD WHERE HIREDATE = TO_DATE('19980518') BAD WHERE SALARY + 1000 > 100000; GOOD WHERE SALARY > 100000 - 1000; 비교하는 인덱스 컬럼의 형이나 값을 변경하면 발생합니다. 이 경우에는 비교값을 변경해 주어야 인덱스를 사용하게 됩니다. 2. 비교 대상의 ..
2010.06.01 -
[Oracle] 오라클에서 자동증가칼럼(Sequence) 사용하기
Unique Key를 생성하는 방법은 DBMS마다 차이가 있다. MS-SQL은 IDENTITY를, MySQL은 auto_increment와 같이 쉽게 사용할 수 있는 방법이 있는데 오라클에서는 Sequence를 사용하여 다음과 같이 유사하게 구현할 수 있다 1. 자동증가컬럼을 사용하고자 하는 MYTABLE테이블을 생성한다. CREATE TABLE MYTABLE (ID NUMBER, NAME VARCHAR2(20)); 2. CREATE SEQUENCE 라는 문장을 사용하여 SEQ_ID라는 이름의 시퀀스를 만든다. CREATE SEQUENCE SEQ_ID INCREMENT BY 1 START WITH 10000; -- INCREMENT BY 1 : 증가값은 1 -- START WITH 10000 : 1000..
2010.05.26 -
[Oracle] 오라클 Imp할 때 테이블 스페이스 변경해서 올리기
출처 : database.sarang.net test 테이블스페이스에 있는내용을 exp userid=test/test file=test.dmp 위와 같이 받은뒤 다른서버의 새로 생성된 테이블 스페이스에다가 imp userid=test2/test2 file='test.dmp' fromuser=test touser=test2 ignore='y' 적용하였더니.... 데이터는 제대로 들어가는데 테이블 스페이스가 이전 test 로 되어있습니다. 새로 들어가는 test2로 적용이 되게 하고 싶은데 어떡해야 하나요? 부탁드립니다. 안녕하세요.. 이런 건이 있다니 반갑네요 .. 저도 이런 프로젝트가 있어서.. 해봤었거든요.. 테이블스페이스에 쿼터뺏고, 그런거 다 안됩니다. 상식적으로 생각해봐도 안되죠.. ㅋㅋㅋ... ..
2010.05.26 -
[Oracle] substr 함수
select substr(EAS220_DOC_NO,1,INSTR(EAS220_DOC_NO,'-',1,1)) from eas220tl where EAS220_DOC_SEQ = 'AA08003201002231754040140' 예) 전산개발부-0808 -> 전산개발부- 요렇게 변경됨 ㅋㅋ
2010.04.28 -
[Oracle] like 문 바인드 변수 적용법
SELECT EAS220_DOC_SEQ, EAS220_DOC_NO, EAS220_FORM_CD, EAS220_TITLE, to_char(EAS220_MADE_DT, 'yyyy-mm-dd')EAS220_MADE_DT, EAS220_MAKER_NM, EAS200_NM_KOR, COM020_DOMINO_NM_KOR, EAS220_DEPT_CD, EAS220_OWNER_ID FROM EAS200TL ,EAS220TL ,COM020TL WHERE EAS220_DOC_DIV = EAS200_CODE AND EAS220_DEPT_CD = COM020_DOMINO_DPT_CD AND EAS220_APP_DIV != 'D' AND EAS220_DOC_NO LIKE '%' || ? || '%' AND EAS220_YEAR..
2010.04.28 -
[Oracle] <> != 는 같은 표현식
select * from per001tl where per001_emp_no = '123123' and per001_kor_nm != '홍길동' 이표현식과 select * from per001tl where per001_emp_no = '123123' and per001_kor_nm '홍길동' 이 표현식은 같다 xml 에서 표현식이 지원 안할땐 != 요렇게 써주자
2010.04.28 -
[Oracle] 1. 유저 권한 grant 하기 2. synonym 하기
1. grant 하기 scott 유저로 로긴 ( scott user 의 emp 테이블을 test 유저에게 모든 권한(조회,등록,수정,삭제 등)을 부여함 ) SQL > GRANT ALL ON emp TO test; 'ALL' 대신에 'SELECT' 로 grant 를 하면 select 권한, 즉 조회하는 권한만 부여할 수 있다. 2. synonym 하기 test 유저로 로긴 ( scott.emp 테이블명을 scott_emp 테이블 명으로 사용 ) SQL > select * from scott.emp; ( synonym 하기 전에는 scott.test 로 테이블 이름을 불러줘야 한다. ) SQL > CREATE SYNONYM scott_emp FOR scott.test; SQL > select * from s..
2010.04.28 -
[Oracle] 오라클 칼럼 추가 , 삭제 예제
--칼럼 삭제 alter table EAS940TL drop column DELETEID; --칼럼 추가 alter table EAS940TL add EAS940_MNG_DEPT_CD varchar(10) alter table EAS940TL add EAS940_USE_YN char(1) alter table EAS940TL add EAS940_DEPT_CD varchar(10)
2010.04.28 -
[Oracle] 제약조건
테이블 생성시 제약조건을 사용할수 있다. 1.제약조건이란? -데이터의 유효성을 확보하기 위해 컬럼에 제한을 거는 조건 2.제약조건의 종류 (1)PRIMARY KEY =중복을 허용하지 않으면서 NULL값을 허용하지 않는 제약 조건 (2)유일키(UNIQUE )-중복을 허용하지 않는 제약조건 ALTER TABLE 테이블이름 ADD CONSTRAINT 제약이름 UNIQUE(칼럼이름) ALTER TABLE CUSTOMER ADD CONSTRAINT CK_CUSTOMER UNIQUE(IDX) (3)NOT NULL -널값을 허용하지 않는 제약조건 ALTER TABLE 테이블이름 MODIFY(칼럼 자료형() NOT NULL); 예) ALTER TABLE CUSTOMER MODIFY(PHONE VARCHAR(20) NO..
2010.04.28