본문 바로가기

Database (84)

반응형
Database/Debug Log

[Oracle - Error] ORA-00903: 테이블명이 부적합합니다. - "invalid table name"

이번 글에서는 ORA-00903: 테이블명이 부적합합니다 에러 해결 방법에 대하여 알아보도록 하겠습니다. ORA-00903: "invalid table name"ORA-00903: 테이블명이 부적합합니다 데이터를 추가하려는데 아래와 같은 에러가 발생하였습니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 50과 'TEST'라는 값을 추가하는 예제입니다. 위의 쿼리를 실행하니 ORA-00903: "invalid table name" 에러가 발생하였습니다.이 에러는 TABLE 명을 INSERT문에 적어주지 않아서 발생한 에러입니다.즉, INSERT 구문은 INSERT INTO 테이블명(값1, ...) VALUES(값1, ...)인데 테이블명을 입력해주지 않으면 ..

2020. 8. 21.
Database/Debug Log

[Oracle - Error] ORA-01722: 수치가 부적합합니다. - "invalid number"

이번 글에서는 ORA-01722: invalid number 에러 해결방법에 대해 알아보도록 하겠습니다. ORA-01722: invalid numberORA-01722: 수치가 부적합합니다 쿼리를 짜다가 아래와 같은 에러가 종종 발생합니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 '개발자'라는 VARCHAR2 타입을 NUMBER 타입으로 바꿔서 조회하는 예제입니다. 위의 쿼리를 실행하니 ORA-01722: invalid number 에러가 발생하였습니다.에러가 발생한 이유는 NUMBER 타입으로 형변환하는데 바꾸려는 값이 VARCHAR2 타입이어서 그렇습니다.즉, VARCHAR2 타입이 온다 하더라도 숫자 값이 입력되어야 하는데 완전 문자 (한글, 영어..

2020. 8. 20.
Database/Debug Log

[Oracle - Error] ORA-01476: 제수가 0 입니다. - "divisor is equal to zero"

이번 글에서는 ORA-01476: divisor is equal to zero 에러 해결방법에 대하여 알아보겠습니다. ORA-01476: divisor is equal to zeroORA-01476: 제수가 0 입니다. 쿼리를 짜다가 아래와 같은 에러가 발생하였습니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 5를 0으로 나눈 결과값을 조회하는 예제입니다. 위의 쿼리를 실행하니 ORA-01476: divisor is equal to zero 에러가 발생하였습니다.이 에러가 발생한 이유는 말 그대로 제수가 0이어서 그렇습니다.즉, 분모가 0이여서 발생하는 에러입니다. 분모에는 0이 올 수가 없습니다. 따라서, 쿼리를 작성하다가 분모 값이 0이 온다면 CAS..

2020. 8. 19.
Database/Debug Log

[Oracle - Error] ORA-00907: 우괄호가 없습니다. - "missing right parenthesis"

이번 글에서는 ORA-00907: missing right parenthesis 에러 해결 방법을 알아보도록 하겠습니다. ORA-00907: missing right parenthesisORA-00907: 누락된 우괄호 쿼리를 짜다가 아래와 같은 에러가 종종 발생합니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 VARCHAR2 형식의 '20200608'을 DATE 형식으로 형변환하여 조회하는 예제입니다. 위의 쿼리를 실행하니 ORA-00907: missing right parenthesis 에러가 발생하였습니다.에러가 발생한 이유는 우괄호 ')'를 제대로 입력하지 않아서입니다.위의 쿼리를 잘 보면 우괄호')' 하나가 없는 것을 확인하실 수 있습니다. 단..

2020. 8. 18.
Database/Debug Log

[Oracle - Error] ORA-01830: 날짜 형식의 지정에 불필요한 데이터가 포함되어 있습니다. - "date format picture ends before converting entire input string"

이번 글에서는 ORA-01830: date format picture ends before converting entire input string 오류에 대하여 다루어 보겠습니다. ORA-01830: date format picture ends before converting entire input stringORA-01830: 날짜 형식의 지정에 불필요한 데이터가 포함되어 있습니다 쿼리를 짜고 실행하는데 아래와 같은 에러가 발생하였습니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 VARCHAR 타입의 문자열을 DATE 타입으로 형변환하여 조회하는 예제입니다.위의 쿼리를 실행하니 ORA-01830: date format picture ends before..

2020. 8. 17.
Database/Debug Log

[Oracle - Error] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 - "literal does not match form

이번 글에서는 ORA-01861: literal does not match format string 오류에 대하여 알아보도록 하겠습니다. ORA-01861: literal does not match format stringORA-01861: 리터럴이 형식 문자열과 일치하지 않음 간혹 쿼리를 짜다가 아래와 같은 에러가 발생합니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 VARCHAR2 형식의 '2020-01-01'을 DATE 형식의 format에 맞게 바꾸어 조회하는 예제입니다. 이 에러는 주로 컬럼의 형식이 DATE인데 VARCHAR2로 변환할 때 많이 일어납니다.이 쿼리에서 에러가 발생한 이유는 format 형식을 잘못 지정하여서 발생하였습니다.위의..

2020. 8. 16.
Database/Debug Log

[Oracle - Error] ORA-01810: 형식 코드가 두번 나타났습니다. - "format code appears twice"

이번 글에서는 ORA-01810: format code appears twice 에러 해결 방법에 대하여 알아보겠습니다. ORA-01810: 형식 코드가 두번 나타났습니다.ORA-01810: "format code appears twice" 쿼리를 짜다가 아래와 같은 에러가 발생하였습니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 예제는 문자열 형식의 날짜를 DATE 형식으로 바꾸는 쿼리입니다. 위의 쿼리를 실행하니 ORA-01810: "format code appears twice" 에러가 발생하였습니다.해당 에러는 format을 잘못 적어서 발생한 에러입니다.위의 쿼리에서는 'YYYYMMDHHMMSS' 라고 적혀있습니다. YYYY = '년도'MM = '월..

2020. 8. 15.
Database/Debug Log

[Oracle - Error] ORA-00937: 단일 그룹의 그룹 함수가 아닙니다. - "not a single-group group function"

이번 글에서는 ORA-00937: not a single-group group function 에러에 대하여 알아보겠습니다. ORA-00937: 단일 그룹의 그룹 함수가 아닙니다.ORA-00937: "not a single-group group function" 쿼리를 짜다가 다음과 같은 에러가 종종 발생할 때가 있습니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 사원번호의 수(존재하는 사원번호가 몇 개인지)와 사원명을 조회하는 쿼리입니다. 위의 쿼리를 실행하니 ORA-00937: "not a single-group group function" 에러가 발생하였습니다.이 에러는 그룹 함수를 사용하였는데 GROUP BY 절을 사용하지 않아 발생한 에러입니다...

2020. 8. 14.
Database/Debug Log

[Oracle - Error] ORA-00979: GROUP BY 표현식이 아닙니다. - "not a GROUP BY expression"

이번 글에서는 ORA-00979: not a GROUP BY expression 에러에 대하여 알아보겠습니다. ORA-00979: GROUP BY 표현식이 아닙니다.ORA-00979: "not a GROUP BY expression" 쿼리를 짤 때 다음과 같은 에러가 종종 발생합니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 부서 번호와 부서명을 그룹화하여 조회하는 쿼리입니다. 위 쿼리를 실행하니 ORA-00979: "not a GROUP BY expression" 에러가 발생하네요.에러가 발생한 이유는 SELECT 절의 컬럼과 GROUP BY 절의 컬럼이 같지 않아서입니다. 즉, 위의 쿼리에서는 SELECT 절에 deptno, dname이 있지만, G..

2020. 8. 13.
Database/Debug Log

[Oracle - Error] ORA-28000: 계정이 잠금되었습니다. - "the account is locked"

이번 글에서는 ORA-28000 : the account is locked 에러에 대하여 알아보도록 하겠습니다. ORA-28000: 계정이 잠금되었습니다.ORA-28000: "the account is locked"오랜만에 SQL을 들어가니까 아래 화면처럼 계정이 잠겨있더군여..하지만, 계정 잠금 푸는 방법은 생각보다 간단합니다.1. [ SQLPLUS ]를 입력하고 사용자명 입력에 [ /as sysdba ]를 입력합니다. 2. [ ALTER USER SCOTT account unlock; ]을 입력합니다. 그러면 사용자가 변경되었다는 문구가 나오고 [ Ctrl + C ]를 눌러서 관리자 계정에서 로그아웃합니다.3. 그리고 다시 [ SQLPLUS ]를 입력합니다. 계정에 SCOTT 비밀번호에 TIGER..

2020. 8. 11.
Database/Debug Log

[Oracle - Error] ORA-01846: 지정한 요일이 부적합합니다. - "not a valid day of the week"

이번 글에서는 ORA-01846: 지정한 요일이 부적합합니다. 에러에 대하여 알아보도록 하겠습니다. ORA-01846: 지정한 요일이 부적합합니다.ORA-01846: "not a valid day of the week" 간혹 쿼리를 짤 때 다음과 같은 에러가 발생합니다. 예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래의 쿼리는 다음주 수요일을 조회하는 쿼리입니다. 이상할 것이 없다고 생각이 드는데 실행하니 ORA-01846: not a valid day of the week 에러가 발생하네요.이 에러가 발생하는 이유는 Oracle 기본 세팅이 영어로 되어있어서 한글로 작성하면 에러가 발생합니다.즉, '수요일' 이라고 적으면 안되고 'wednesday'라고 작성해야 합니..

2020. 8. 10.
Database/Debug Log

[Oracle - Error] The network adapter could not establish the connection 해결 방법

SQL Developer로 쿼리 작성하려고 하니 다음과 같은 에러가 발생했습니다.The network adapter could not establish the connection해결 방법[시작 버튼] → [마우스 우클릭] → [컴퓨터 관리]에 들어갑니다. [서비스 및 응용 프로그램] → [서비스] → [TNSListener, XEClirAgent] [마우스 우클릭] → [시작 클릭] 이렇게 해주시면 에러 없이 정상적으로 작동할 것입니다.

2020. 8. 8.
Database/Debug Log

[Oracle - Error] ORA-01840: 입력된 값의 길이가 날짜 형식에 비해 부족합니다 - "input value not long enough for date format"

이번 글에서는 ORA-01840: 입력된 값의 길이가 날짜 형식에 비해 부족합니다 에러에 대하여 다루어 보도록 하겠습니다. ORA-01840: 입력된 값의 길이가 날짜 형식에 비해 부족합니다ORA-01840: input value not long enough for date format 쿼리를 짜다가 아래와 같은 에러가 발생하였습니다.예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.아래는 VARCHAR2 타입 '202007'을 'YYYYMMDD' 형식의 Date 타입으로 형변환하여 조회하는 쿼리입니다.위의 쿼리를 실행하니 ORA-01840: input value not long enough for date format 에러가 발생하네요.이 에러가 발생하는 이유는 바인딩되는..

2020. 7. 26.
Database/Oracle

[Oracle] Cartesian Product(카티션곱)이란?

이번 시간에는 CROSS JOIN에 대하여 알아보도록 하겠습니다.크로스 조인은 흔히 Cartesian Product(카티션 곱)이라고 많이들 불립니다.Cartesian Product [카티션 곱]조인 조건절을 적지 않은 경우 해당 테이블에 대한 모든 데이터를 가져오는 현상이 바로 카티션 곱인데요.즉, 조인 쿼리 중에 WHERE 절 혹은 JOIN 조건절이 잘못 기술되었거나 아예 없을 때 발생합니다. 아래 예제를 통하여 한 번 확인해 보도록 할까요?- 출력결과를 화면에 전부 담아내지는 못했지만 총 56개의 결과값이 나왔습니다.- 카티션 곱의 결과 얻어지는 컬럼의 수는 사원 테이블의 컬럼의 수(8)와 부서 테이블의 컬럼의 수(3)를 더한 것이므로 11이 됩니다.- ROW(행) 수는 사원 한 명에 대해서 DEP..

2020. 7. 18.
Database/Oracle

[Oracle] MAX(), MIN() - 최댓값과 최솟값을 구하는 방법

이번 글에서는 최댓값과 최솟값을 구하는 함수인 MAX()와 MIN() 에 대하여 알아보도록 하겠습니다.이번 글은 정말 쉬워서 짧고 간단하게 끝날 예정이니, 감만 익히시면 될겁니다. 문법을 살펴보면 이렇습니다. 인수로는 간단하게 컬럼명을 입력하시면 됩니다.MAX(컬럼)MIN(컬럼) 아래 예제를 통하여 바로 접근해보도록 하겠습니다.아래 쿼리는 EMP 테이블 내에서 가장 높은 급여와 가장 낮은 급여를 구하는 예제입니다.최댓값(MAX)로는 5000, 최솟값(MIN)으로는 800이 조회된 것을 확인할 수 있습니다. 그렇다면 날짜는 어떻게 기준이 잡힐까요?아래 쿼리는 가장 최근에 입사한 사람과 가장 나중에 입사한 사람의 입사날짜를 구하는 예제입니다.MAX(날짜) 를 하면 가장 최근 날짜가.MIN(날짜) 를 하면 가..

2020. 7. 16.
Database/Oracle

[Oracle] COUNT() - 행의 개수를 구하는 방법

데이터베이스를 다루다 보면 테이블에 저장된 데이터의 개수를 파악해야 하는 경우가 매우 많습니다. 예를 들어 전체 사원의 수를 확인하거나, 특정 조건을 만족하는 데이터가 몇 건인지 조회해야 할 때가 대표적입니다. 이럴 때 가장 자주 사용되는 함수가 바로 COUNT() 함수입니다.COUNT() 함수는 조회 결과의 행(row) 개수를 간단하고 정확하게 계산할 수 있도록 도와주며,NULL 값 처리 방식에 따라 사용법이 달라지기 때문에 정확한 이해가 중요합니다. 이번 글에서는 COUNT() 함수와 COUNT(*) 함수의 차이점을 중심으로,예제를 통해 각각의 사용 방법과 조회 결과를 하나씩 살펴보도록 하겠습니다.COUNT()- 행의 개수를 반환하는 그룹 함수입니다.- 그룹 함수이다 보니까 NULL값에 대해서는 개수..

2020. 7. 15.
Database/Oracle

[Oracle] CASE WHEN THEN 문

이번 글에서는 오라클 표현식 CASE ~ WHEN ~ THEN 구문에 대하여 알아보도록 하겠습니다.실제 실무에서도 자주 쓰이는 구문이니까 잘 알아두시면 아주 편리하겠습니다.CASE ~ WHEN ~ THEN 구문- 여러가지 경우에 대해서 하나를 선택하는 함수입니다.- DECODE 함수와 차이점이 있다면 DECODE 함수는 조건이 일치하는 경우에 대해서만 적용되는 반면, CASE 문은 다양한 비교 연산자를 이용하여 조건을 제시할 수 있으므로 범위를 지정할 수 있습니다.- 프로그래밍 언어의 if ~ else 구문과 유사한 구조를 가지고 있습니다.CASE ~ WHEN ~THEN 문법아래 문법으로만 봤을 때는 살짝 복잡해 보일수도 있습니다.CASE 표현식 WHEN 조건1 THEN 결과1 WH..

2020. 7. 14.
Database/Oracle

[Oracle] TRIM(), LTRIM(), RTRIM() - 공백 제거하는 방법

이번 시간에는 공백을 제거하는 방법에 대하여 알아보도록 하겠습니다.TRIM() 함수를 이용하면 아주 손쉽게 공백을 제거할 수 있습니다.LTRIM 함수- 문자열의 왼쪽(앞)의 공백 문자들을 삭제합니다.아래 예제를 통하여 확인해 보도록 하겠습니다.왼쪽부분의 공백은 없어지고 오른쪽의 공백은 아직 남아있네요.RTRIM 함수- 문자열의 오른쪽(뒤)의 공백 문자들을 삭제합니다.마찬가지로 아래 예제를 통하여 확인해 보도록 하겠습니다.LTRIM() 함수와는 반대로 왼쪽 공백은 남아있고 오른쪽 공백은 제거되었네요.TRIM 함수- 문자열의 앞, 뒤 공백 문자들을 삭제합니다.아래 예제를 통하여 확인해 보도록 하겠습니다.LTRIM(), RTRIM() 함수와는 달리 왼쪽, 오른쪽 구분 없이 공백 문자들이 모두 삭제되어서 출력되..

2020. 7. 8.
반응형