본문 바로가기

Database/Oracle8

[Oracle] ORA-01791: SELECT 식이 부적합합니다 / 원인 및 해결 방법 오늘은 오라클 에러 ORA-01791: SELECT 식이 부적합합니다. 에 대해 정리해 보겠습니다. 오류 내용 ORA-01791: SELECT 식이 부적합합니다 01791. 00000 - "not a SELECTed expression" 쿼리 SELECT DISTINCT EMP_NO, EMP_TP, KOR_NM, ENG_FNM_NM, ENF_FNM_NM1, AGE, DEPT_CD FROM HR_EMP_MST ORDER BY NUM_ID 발생 원인 SELECT 문에서 DISTINCT와 ORDER BY 절을 함께 사용했을 때 발생함 해결 방법 DISTINCT와 ORDER BY을 함께 사용할 경우 ORDER BY 절에는 SELECT 문에 사용된 칼럼들만 사용할 수 있습니다. 따라서 ORDER BY 절에 사용된.. 2021. 1. 20.
[Oracle] 오라클 UNION과 UNION ALL 차이점/ UNION 함수 사용법과 예제 SELECT 문을 실행하면 해당 조건에 맞는 데이터가 조회된다. 조회된 결과를 가지고 여러 개의 SELECT문을 연결해 또 다른 하나의 쿼리로 가공하고 싶을 때 사용하는 것이 바로 집합 연산자다. 집합 연산자는 우리가 학창 시절 배웠던 집합, 즉 합집합, 교집합, 차집합, 여집합과 개념이 같다. 집합 연산자의 종류는 UNION, UNION, ALLNTERSECT, MINUS가 존재하는데 이번 포스팅에서는 2개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용하는 UNION, UNION ALL에 대해 알아보자 UNION UNON은 합집합을 의미한다. 2개 이상의 SELECT문 결과 집합을 결합하는 데 사용되며 SELECT 문 사이의 중복 행을 제거한다. UNION 연산자 내의 각 SELECT문에는 데.. 2020. 10. 26.
[Oracle] 오라클 NULL 치환 방법/ COALESCE 함수 사용법과 예제 COALESCE COALESCE 함수는 인자 값으로 들어오는 표현식에서 null이 아닌 첫 번째 표현식을 리턴해주는 함수로 모든 표현식이 null 인경우 COALESCE 함수는 null을 리턴한다. 사용 방법 COALESCE( expr1, expr2,... expr_n ) 매개변수 expr1, expr2, ... expr_n null이 아닌 값을 테스트할 표현식으로 표현식은 모두 동일한 데이터 유형이어야 한다. 예제 SELECT COALESCE('첫번째','두번째','세번째'), -- 결과: 첫번째 COALESCE(NULL,'두번째','세번째'), -- 결과: 두번째 COALESCE(NULL,NULL,'세번째'), -- 결과: 세번째 COALESCE(NULL,NULL,NULL) -- 결과: null FR.. 2020. 10. 23.
[Oracle] 오라클 첫 문자 대문자 변환 방법/ INITCAP 함수 사용법과 예제 INITCAP 문자열 중에서 각 단어의 첫 번째 문자를 대문자로 바꾸고 나머지는 소문자 처리하는 함수. 사용 방법 INITCAP( 문자열 ) 매개 변수 문자열은 각 단어의 첫 번째 문자가 대문자로 변환되고 나머지 모든 문자는 소문자로 변환되는 문자열 인수이다. 예제 SELECT INITCAP('helloworld') -- Helloworld ,INITCAP('HELLOWORLD') -- Helloworld ,INITCAP('hello world') -- Hello World ,INITCAP('HELLO WORLD') -- Hello World ,INITCAP('hello-world') -- Hello-World FROM DUAL; 2020. 10. 20.
[Oracle] 오라클 절대값 구하는 방법/ ABS 함수 사용법과 예제 거리 또는 금액을 계산할 때 종종 음수를 양수로 바꿔야 하는 경우 생깁니다. 오늘은 오라클에서 절대값을 구하는 함수인 ABS에 대해 정리해 보겠습니다. ABS ABS 함수는 숫자의 절대 값을 구하는 함수. 사용 방법 ABS( number ) 매개 변수 절대 값으로 변환할 수 예제 SELECT ABS(123), -- 123 ABS(-123), -- 123 ABS(-123.45) -- 123.45 FROM DUAL 2020. 10. 19.
[Oracle] 오라클 올림, 반올림, 내림, 버림 함수(TRUNC/ROUND/CEIL/FLOOR) 사용법과 예제 TRUNC 특정 소수 자릿수로 잘린 숫자를 반환함 (절사) 사용 방법 TRUNC( number , decimal_places ) 매개 변수 number : 절사 할 숫자 decimal_places : 절사 할 대상의 소수점 이하 자릿수. 이 값은 정수 여야만 하고 이 매개 변수가 생략되면 TRUNC 함수는 숫자를 소수점 이하 0 자리로 자른다. SELECT TRUNC(3456.789,2) -- 3456.78 , TRUNC(3456.789,1) -- 3456.7 , TRUNC(3456.789,0) -- 3456 , TRUNC(3456.789,-1) -- 3450 , TRUNC(3456.789,-2) -- 3400 FROM DUAL; ROUND 특정 소수 자릿수로 반올림된 숫자를 반환 (반올림) 사용 방법 .. 2020. 10. 16.
[Oracle]ORA-01861:literal does not match format string 원인과 해결 방법 오늘 회사 후배가 출근은 하시자 마자 옆에 있는 동기에게 질문을 했다. "내 로컬 환경 DB에서는 Date타입 칼럼에 String을 넣었을 때 정상 동작했는데 같은 DB인데 개발 서버에서는 오류가 나요ㅠ 왜 그런 거예요..ㅠ" 음.. 나도 신입 때 똑같은 현상을 겪고 문제는 해결한 적이 있었다. 물론 to_date 명시적으로 형 변환을 해서 문제를 해결했던 기억이 나는데.. 정확하게 왜 그런 현상이 발생하는지는 찾아보진 않았다. 연차가 쌓이면서 느끼는 거지만.. 문제가 발생했을 때 정확히 원인을 파악하고 내 것으로 익히려는 노력을 해야겠다. ORA-01861: literal does not match format string ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 위의 오라클 에러는 내.. 2020. 7. 20.
[Oracle] 최대값 최소값 구하기(GREATEST/LEAST) 사용법과 예제 MIN, MAX는 여러 Row 중 해달 컬럼의 최대값과 최소값을 구하는 함수라면 GREATEST, LEAST 여러 Column 또는 표현 중에 최대값 최소값을 구하는 함수입니다. 최대값 구하기 (구문) GREATEST(expr1,expr2....) (예제) SELECT GREATEST(1, 2, 3, 4, 5) FROM DUAL; 결과 : 5 GREATEST 함수를 이용하여 4번의 수학 시험 중 가장 높은 점수를 구하겠습니다. (WITH 절을 이용하여 임시테이블 생성) WITH MATH_EXAM_SCORE AS ( SELECT '김아무개' NAME, 80 EXAM_1_SCORE, 88 EXAM_2_SCORE, 95 EXAM_3_SCORE, 82 EXAM_4_SCORE FROM DUAL UNION ALL .. 2020. 3. 19.