반응형 오라클27 자주 발생하는 오라클 에러 정리 Oracle Error 자주 발생하는 오라클 에러 정리 [Error] ORA-01741: 길이가 0인 식별자는 부적합합니다 [Solution] 쿼리 내 더블쿼텐션(") 이 사용됐는지 확인해서 싱글쿼텐션(') 으로 변경 [Error] ORA-01722: 수치가 부적합합니다 [Solution] 숫자와 문자가 섞인 컬럼일 경우 발생. 정규식을 사용해 숫자만 추출한 후 사용 TO_NUMBER(REGEXP_REPLACE(컬럼, '[^0-9]')) [Error] ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다. [Solution] DB 컬럼에 설정된 길이보다 큰 값이 넘어갈 때 발생하는 에러, 저장 할 파라미터의 크기를 체크! [Error] ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습.. Database/SQL 2021. 9. 6. 오라클 최근 몇달, 최근 몇일 데이터 행으로 조회하기 오라클 최근 몇달, 최근 몇일 데이터 행으로 조회하기 기준이 되는 날짜가 출력이 되야하고, 그 날짜에 해당하는 데이터를 붙여 출력할 때 활용하는 방법입니다. LEVEL과 CONNECT BY 구분을 활용합니다. 최근 몇 달 데이터 행으로 조회 (최근 10달, 현재 : 2020년12월) SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 1-LEVEL), 'YYYYMM') FROM DUAL CONNECT BY LEVEL Database/SQL 2020. 12. 9. ORACLE 테이블 데이터 비교, 교집합 차집합 데이터 추출 ORACLE 테이블 데이터 비교, 교집합 차집합 이번 포스팅은 ORACLE 테이블 데이터 비교가 주제입니다.! 같은 포멧의 두 테이블을 비교하거나, SELECT 한 두 SQL문의 데이터를 비교할때 사용됩니다. 같은 데이터 만 추출하기 (교집합) INTERSECT SELECT * FROM TABLE_A INTERSECT SELECT * FROM TABLE_B 두 테이블 SQL문 사이에 INTERSECT 가 들어가게 됩니다. 두 테이블의 컬럼이 같고, 같은 데이터 포멧이어야 비교가 가능합니다. 위 테이블의 결과는 처음 테이블(TABLE_A)의 일치하는 데이터 ROW 가 출력이 됩니다. 아래의 예를 보시죠. SELECT * FROM ( SELECT '사과' , '배' , '오랜지' FROM SYS.DUAL U.. Database/SQL 2019. 9. 24. Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용 카테시안 조인과 CASE문을 활용하여 행열을 변환하는 방법을 알아보도록 하겠습니다. 카테시안 조인과 CASE문에 대해서는 아래의 Link를 참고하세요. Link : Oracle 오라클 데이터 복제 방법, 카테시안 조인 Oracle 오라클 데이터 복제 방법, 카테시안 조인 Oracle 오라클 데이터 복제 방법, 카테시안 조인 이번 포스팅에서는 원하는 만큼 데이터를 복사해 SELECT 하는 방법에 대해서 포스팅 하겠습니다. 데이터의 복제는 카테시안 조인을 사용하여 간단히 할 수 있습니.. aljjabaegi.tistory.com Link : Oracle 오라클 CASE문 사용법 CASE WHEN THEN END Oracle 오라클 CASE문 사.. Database/SQL 2019. 8. 30. 오라클 형변환 알짜만 빼먹기, TO_NUMBER(), CAST(), TO_CHAR(), TO_DATE() 오라클 형변환 알짜만 빼먹기, TO_NUMBER(), CAST(), TO_CHAR(), TO_DATE() 오라클에서도 다른 몇몇 프로그래밍 언어처럼 암시적 형변환을 제공합니다. 하지만 정확한 예측이 어렵기 때문에 반드시 명시적으로 형변환을 해야만 합니다. 예를들어 M_CODE 테이블의 CD_ID 컬럼이 VARCHAR2(2 BYTE) 타입이라 할때 SELECT * FROM M_CODE WHERE CD_ID = 10 위의 쿼리가 가능한 이유는 아래와같이 암시적 형변환이 일어났기 때문입니다. SELECT * FROM M_CODE WHERE TO_NUMBER(CD_ID) = 10 그래서 불필요한 암시적 형변환이 발생하지 않기 위해 아래와 같이 작성을 해야합니다. 데이터의 양이 많아질 수록 기존 컬럼의 형변환은 .. Database/SQL 2019. 7. 24. Oracle IN, NOT IN 문 알짜만 빼먹기 Oracle IN, NOT IN 문 알짜만 빼먹기 값이 포함되는 혹은 포함되지 않는 데이터를 추출하고 싶을 때 사용하는 것이 IN, NOT IN 문입니다. 용법을 보도록 하죠. [용법] IN 문 SELECT * FROM TABLE WHERE COLUMN IN ('A' , 'B') [IN문 풀이] SELECT * FROM TABLE WHERE COLUMN = 'A' OR COLUMN = 'B' [용법] NOT IN 문 SELECT * FROM TABLE WHERE COLUMN NOT IN ('A' , 'B') [NOT IN문 풀이] SELECT * FROM TABLE WHERE COLUMN 'A' AND COLUMN 'B' 위의 쿼리를 보면 IN문은 'A'와 'B' 가 포함되는 데이터만 추출되고, NOT .. Database/SQL 2019. 7. 17. Oracle 오라클 두 좌표 사이의 거리 구하기 WGS84 Oracle 오라클 두 좌표 사이의 거리 구하기 WGS84 특정 테이블에 좌표값 컬럼이 있고(LOCATION_DATA_Y, LOCATION_DATA_X) 파라메터로 좌표값(Y : 33.504274, X : 126.529182)을 받아 거리를 구하고자 할 경우 2km 정도의 오차 발생의 경우(0.019 - 0.022) [QUERY] SELECT DISTANCE_WGS84(33.504274, 126.529182, LOCATION_DATA_Y, LOCATION_DATA_X) as DISTANCE FROM COL_INCIDENT_LOG WHERE (LOCATION_DATA_Y BETWEEN 33.504274-0.019 AND 33.504274+0.019) AND (LOCATION_DATA_X BETWEEN 12.. Database/SQL 2017. 11. 7. ORA-28001 , ORA-28002 비밀번호 만기관련 오라클 해결방법. 오라클 해결방법ORA-28001 , ORA-28002 비밀번호 만기관련 오라클 해결방법. 갑자기 잘 사용하고 있던 프로그램이 디비 접속이 되지않아 로그를 확인해 보니, 아래와 같은 오라클 에러가 나고 있었습니다. 내용을 확인해보니 오라클 11부터 패스워드에 대한 유효기간이 설정 된다는 것이더군요. 기본은 180일(6달, 반년) 으로 설정되고, 중간중간에 몇일 남았다는 문구가 표출된다던데, 하두 신경을 안쓴지라 보지는 못했습니다. 그럼 해결 방법을 알아보도록 하죠. 제일 간단한 방법은 비밀번호 설정을 다시 해주시면 됩니다. alter user 유저명 identified by 패스워드; 하지만 이것은 미봉책이죠. 180 이후에 또 같은 문제가 발생할 것입니다. 관리자로 로그인 하여 해당 패스워드에 대한 유효.. Database/SQL 2017. 6. 14. Oracle 오라클 자음 초성 추출 함수, 자음으로 검색, 초성 검색 Oracle 오라클 자음 초성 추출 함수, 자음으로 검색, 초성 검색 개발을 하다보면 자음으로만 검색할 수 있게 해달라는 요청이 들어오곤 한다. 그럴때마다 유용하게 사용하는 것이 아래의 함수이다. 그냥 복사 붙여넣고 실행하면 함수가 생성된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 create or replace function fn_choSearch( str in varchar2) return varchar2 is returnStr varchar2(100); cnt number := 0; tmpStr varchar2(10); begin if str is null th.. Database/SQL 2016. 4. 18. Oracle Sequence 시퀀스 사용 조회/생성/수정/삭제 ibatis 자동 증가값 생성 Oracle 시퀀스사용 일련번호 생성 SEQUENCE 사용법 임의값을 증가시켜 일련번호를 생성하는 경우 보통 일련번호의 Max값 +a 를 select 하여 값을 저장 한다. 하지만 이런 수고를 거치지 않고 시퀀스 값을 만들어 두면 자동 증가하게 끔 할 수 있다. 접근 가능한 SEQUENCE 조회 SELECT * FROM ALL_SEQUENCES SEQUENCE 생성 CREATE SEQUENCE seqNo START WITH 1 INCREMENT BY 1 MAXVALUE 999999999 MINVALUE 1 seqNo라는 시퀀스를 만드는데 시작은 1 (START WITH) 1씩 증가시키고 (INCREMENT BY) 최대값은 1000000000000 (MAXVALUE) 최소값은.. Programing/Spring 2016. 1. 28. Oracle 오라클 KEEP()함수 사용법 그룹함수로 조회한 행 중에 다른 컬럼 가져오는 방법 Oracle 오라클 KEEP()함수 사용법 그룹함수로 조회한 행 중에 다른 컬럼 가져오는 방법 그룹함수로 조회한 행 중에 다른 컬럼 가져오는 방법 쿼리를 짜다보면 가장 큰, 가장 작은 값을 가져와야 할 때가 있다. 이럴 땐 MAX() 나 MIN()함수를 사용하여 해당 컬럼을 가져온다. 그런데, 이렇게 MAX 나 MIN 함수로 가져온 값이 있는 행중에 다른 컬럼을 가져와야 한다면 어떻게 해야 할까? KEEP의 사용법을 모르는 경우라면 서브쿼리를 사용하여 가져오려 할 것이다. 예) SELECT 컬럼A FROM 테이블A WHERE 컬럼B = (SELECT MAX(컬럼B) FROM 테이블A) 물론 값은 같다. 하지만 조건없이 구현이 가능하다. KEEP()함수을 사용하여 보자. 예) SELECT MAX(컬럼A)K.. Database/SQL 2015. 12. 22. ORACLE MERGE 조건에 따라 INSERT, UPDATE ORACLE MERGE 조건에 따라 INSERT, UPDATE 특정 조건의 데이터에 따라 ROW를 INSERT하거나 UPDATE 해야할 때 MERGE를 사용합니다. 예를 들어 테이블에 어떤 값이 존재할 경우에는 UPDATE를 존재하지 않을 경우에는 INSERT를 해야 된다고 할 때 MERGE를 사용하지 않는다면 값을 확인하는 쿼리를 따로 사용했어야 했죠. 하지만 MERGE를 사용하면 하나의 쿼리로 위의 데이터 처리가 가능합니다. - 사용방법 MERGE INTO TABLE_NAME USING TABLE/VIEW/SUBQUERY/DUAL ON CONDITION WHEN MATCHED THEN UPDATE문 WHEN NOT MATCHED THEN INSERT문 예) MERGE INTO RECORD_INFO U.. Database/SQL 2015. 8. 19. 오라클 두 테이블의 컬럼에서 같은 값 확인 ORACLE DECODE 활용 오라클 두 테이블의 컬럼에서 같은 값 확인 ORACLE DECODE 활용 두 테이블의 컬럼에서 같은 값이 있는지 확인하기 위해서는 OUTER조인과 DECODE를 활용한다. 예를 들어 A테이블의 B컬럼과 C테이블의 D컬럼에서 같은 값이 있는지 확인하고 싶다고 하자. TABLE A = B{ 1, 2, 4, 6, 7 } TABLE C = D{ 1, 3, 6, 7 } 테이블이 위와 같다면 1, 6, 7 값이 중복되는 것을 확인할 수 있다. 그럼 쿼리를 사용해 값을 확인해보자. SELECT A1.B , C1.D FROM A A1 LEFT JOIN C C1 ON(C1.D = A1.B) 위의 쿼리의 결과는 아래와 같다. B D ----------------- 1 1 2 (NULL) 4 (NULL) 6 6 7 7 LE.. Database/SQL 2015. 8. 5. Oracl 오라클 설치방법 Oracl 오라클 설치방법 이번에는 서버에 오라클을 설치 하는 방법에 대해 포스팅 해보겠습니다. 우선 오라클 사이트에 접속합니다. http://www.oracle.com/ 접속을 후 Sign In/Register 를 클릭합니다. 로그인 창이 나타나면 로그인 합니다. 계정이 없을 경우 가입합니다. 로그인 후 Top Menu에서 Downloads -> Oracle Database 로 이동합니다. 'Accept License Agreement' 를 클릭한 후 자신의 OS 에 맞는 버전을 선택해 다운로드 합니다. File1 과 File2 를 모두 받으셔야 합니다. (저는 11g 를 받도록 하겠습니다.) 받은 파일의 압축을 풉니다. 2번째 파일(아래 이미지의 경로) 로 이동하여 4개의 폴더를 잘라내기 한 후.. .. Database/기초 2014. 2. 6. Oracle 오라클 테이블, 컬럼 정보 출력하기 Oracle 오라클 테이블, 컬럼 정보 출력하기 DB 내 테이블명과 테이블 주석컬럼, 컬럼 주석을 출력하는 방법입니다. 오라클 내에서 제공하는 USER_COL_COMMENTS와 USER_TAB_COMMENTS를 사용합니다. 컬럼주석에 '주민번호', 'RRN_NO'가 들어간 테이블과 컬럼명을 출력하는 SQL문 입니다. [방법] -- 컬럼주석으로 찾는 방법 SELECT T1.TABLE_NAME AS 테이블명 , T2.COMMENTS AS 테이블주석 , T1.COLUMN_NAME AS 컬럼명 , T1.COMMENTS AS 컬럼주석 FROM USER_COL_COMMENTS T1 LEFT JOIN USER_TAB_COMMENTS T2 ON (T2.TABLE_NAME = T1.TABLE_NAME) WHERE T1... Database/SQL 2013. 10. 1. 이전 1 2 다음 💲 추천 글 반응형