본문 바로가기
반응형

DBMS/ORACLE70

[ORACLE] ORA-12704: 문자 집합이 일치하지 않습니다.(feat. UNISTR) ORA-12704: 문자 집합이 일치하지 않습니다. PL/SQL: ORA-12704: 문자 집합이 일치하지 않습니다 프로시저를 사용하면서 접하게된 에러이다. 주로 컬럼의 타입을 우선적으로 살펴보는 것을 추천한다. 나같은 경우에는 개발서버와 운영서버의 데이터 타입이 달라 발생했던 에러였다. (이게 말이 되는것인가...!!!) 그래서 VARCHAR2 컬럼의 데이터를 가지고 NVARCHAR2에 사용하고자 UNISTR(VARCHAR2 컬럼)으로 해결하였다. 2020. 7. 28.
[ORACLE] 오라클_MERGE INTO (데이터 여부에 따라 UPDATE / INSERT 처리) MERGE INTO ORACLE에서 제공하는 MERGE INTO 구문에 대해 알아보자. 테이블에 데이터가 이미 있으면 업데이트를 실행하고, 없을 경우 값을 넣어줘야 하는 경우에 MERGE INTO 구문을 사용하지 않는다면, 1. 값이 있는지 확인 2. 있으면 UPDATE 3. 없으면 INSERT 이렇게 3개를 선언을 해줘야 한다. 오라클에서는 이런 작업을 한번에 처리를 할 수 있도록 도와주는 구문을 제공하는데 이게 바로 MERGE INTO 구문이다. 하나하나 자세히 알아가보도록 하자. ▷ [구문] MERGE INTO [TABLE / VIEW] - update 또는 insert할 테이블 혹은 뷰 USING [TABLE / VIEW / DUAL] - 비교할 대상 테이블 혹은 뷰 (위 테이블과 동일할 경우 D.. 2020. 1. 8.
[ORACLE] 오라클_사용중인 오라클 버전 확인하기(SQL 쿼리문) 오라클 버전 확인하기 쿼리문을 통해 현재 사용중인 오라클 버전이 무엇인지 확인하는 방법에 대해 알아보자. SELECT * FROM PRODUCT_COMPONENT_VERSION; ▷ 결과 SELECT * FROM v$version; ▷ 결과 위 두개의 쿼리문을 사용하면 결과 처럼 오라클의 버전, 서버 운영체제 및 버전 등을 확인할 수 있다. 하나하나 다 확인하기 귀찮다면 그냥 Oracle 관련한것만 뽑아서 쓰면 된다. SELECT * FROM v$version WHERE banner LIKE 'Oracle%'; 추가적으로 sqlplus 를 사용하여 버전을 확인하는 방법이 있어 기록해둔다.(출처 : 제타위키) 2019. 9. 17.
[ORACLE] 오라클_중복된 데이터 가져오기 오라클 중복된 데이터 가져오기 업무를 하다보면 중복된 데이터를 찾아야 하는 순간이 오기 마련인데, 어떻게 해야 중복된 데이터를 찾을 수 있는지 한번 알아보자. 대한민국 법정도 코드가 들어있는 CM_KIK_B라는 테이블을 가지고 예를 들어보자. 간단하게 중복된 데이터를 찾는 방법은 찾고자 하는 중복된 데이터 컬럼을 대상으로 GROUB BY를 한 후에 HAVING 절로 COUNT가 1 이상인 것을 가져오면 된다. 그럼 전국적으로 중복되는 "동(KIKB_DONG_NM)"을 찾아보자. SELECT T1.KIKB_DONG_NM, COUNT(*) FROM CM_KIK_B T1 GROUP BY T1.KIKB_DONG_NM HAVING COUNT(*) > 1 ; 추가적으로 GROUB BY ~ HAVING 절 말고도 분.. 2019. 8. 21.
[ORACLE] 오라클_데이터 엑셀로 추출하기/내보내기 (export) 데이터 엑셀로 추출하기 SQL Developer를 사용하다가 특정 조건으로 뽑아낸 데이터를 엑셀 파일로 가져와야하는 순간이 찾아왔다. 매번 할때마다 검색해서 찾는게 귀찮아서 이참에 정리해둔다. 1. 특정 조건을 만족하는 데이터들을 뽑는다. 2. EXPORT 한다. 조건을 입력해 출력된 데이터복록에 마우스 우클릭을 하고 [익스포트]버튼을 눌러주자. 3. 엑셀 형식 변경 아래와 같이 익스포트 마법사 라는 창이 하나 뜰텐데, 형식을 excel 2003+(xlsx)로 변경해주도록 하자. 4. 정보 설정 워크시트의 이름을 설정해주고, 파일을 내보낼 위치를 지정하고나서 [다음] 버튼을 눌러주도록 하자. 5. 완료 익스포트 마법사 - 단계 2/2 로 넘어왔다면, 그냥 [완료]버튼을 눌러주면 된다. 6. 엑셀 확인 아.. 2019. 8. 19.
[ORACLE] 오라클_WITH 구문 사용하기(feat.서브쿼리) WITH - WITH 구문은 보통 서브쿼리를 사용할때 많이 사용하고는 한다. (가독성과 성능면에서 우수하다.) - 일반 서브쿼리는 서로를 참조할 수 없지만 WITH절은 서로 참조가 가능하다. - 오라클 9버전 이상에서 지원하는 구문이다. - WITH 구문을 사용한 쿼리는 인라인뷰나 임시 테이블로 여긴다. 예제 1) WITH 구문의 일반적인 사용방법 -- 구문 -- WITH ALIAS명 AS (SUB 쿼리) -- SELECT 컬럼명 FROM ALIAS명; WITH TEST AS (SELECT a.deptno , b.emptno FORM a,b) SELECT * FROM TEST; 예제 2) WITH 구문 안에서 두개의 쿼리문 사용 -- 구문 -- WITH ALIAS명 AS (SUB 쿼리), -- ALIAS.. 2019. 8. 6.
[ORACLE] 오라클_NULL 값 일때 치환 및 처리 (COALESCE) COALESCE - COALESCE(case1, case2, case3, ..., caseN) - COALESCE 함수는 나열된 값을 순차적으로 체크하여 NULL이 아닌 값이 나오는 인수를 반환한다. - 이 함수는 ANSI 표준 함수로 오라클뿐만 아니라 다른 DB언어에서도 사용이 가능하며 오라클에서의 NVL과 비슷한 기능으로 작동한다. COALESCE 함수에 대해 간략하게 알아봤으니 예제를 통해 접해보자. 우선 아래와 같은 데이터가 있다는 가정하에 진행해보자. ▷ 초기 데이터 deptno salary 10 20 0 30 10000 40 ▷ 쿼리문 SELECT deptno, salary, COALESCE( salary * 0.9 , -1) AS realSalary FROM dept; ▷ 결과 deptno .. 2019. 8. 4.
[ORACLE] ORA-00918: column ambiguously defined (컬럼 중복 에러) ORA-00918: 열의 정의가 모호합니다 ORA-00918: column ambiguously defined 아주 흔하게 볼 수 있고 아주 가볍게 처리할 수 있는 에러이다. 에러의 원인은 컬럼명이 중복 되었을 경우에 생기는 에러이다. 그래서 보통 조인(join)문이나 서브쿼리를 사용할 때 자주 보이는 에러이다. SELECT a.no , b.no , a.content , b.name , b.age FROM aTest a , bTest b WHERE a.no = b.no; 기본적인 조인문을 예제로 보면, 위와같은 경우에는 에러가 발생한다. a 테이블의 no와 b 테이블의 no를 SELECT 했지만, SELECT 했을 경우 둘 컬럼명 모두 no이기 때문에 중복 에러가 발생하는 것이다. 해결방법은 해당 컬럼을.. 2019. 7. 31.
[ORACLE] 오라클_트리거(TRIGGER) 트리거 (TRIGGER) 트리거는 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생하 때마다 자동적으로 수행되는 사용자 정의 프로시저이다. 트리거는 TABLE과는 별도로 DATABASE에 저장된다. 트리거는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될 수 있다. 트리거는 SQL의 제약조건 방법을 통해 명시할 수 없는 무결성 제약조건을 구현하고, 관련 테이블의 데이터를 일치시킬 때 주로 사용된다. 제약조건과 함께 데이터 무결성을 지키는 하나의 방법으로써 특정 이벤트에 대해서 연속적으로 자동 동작하는 특수한 형태의 저장 프로시저라고 볼 수 있다. 일반적으로 사용처는 많지만 예를 들어보자면 "입고"테이블에 새로운 제품이 들어왔을 때 그 수량을 "재고"테이블에 자동으로 반영되게 .. 2019. 3. 31.
반응형
TOP