본문 바로가기

728x90

oracle

[Oracle SQL] NUMBER 데이터 타입 완전 정복(NUMBER(p,s) 제대로 이해하기) Oracle SQL에서 가장 많이 사용되는 숫자 데이터 타입은 바로 NUMBER입니다.이번 글에서는 NUMBER(p, s)의 구조와 실무에서 자주 겪는 오류까지 정리해보겠습니다. 🔢 1. NUMBER 타입이란?Oracle에서 숫자 데이터를 저장할 때 가장 기본이 되는 타입이 NUMBER입니다.NUMBER(p, s) p (precision, 정밀도): 숫자의 전체 자릿수 (정수부 + 소수부 포함)s (scale, 소수 자릿수): 소수점 이하 자릿수 예를 들어,NUMBER(5, 2) 최대 5자리까지 저장 가능소수점 아래는 2자리까지 허용입력 가능한 범위: -999.99 ~ 999.991000.00을 입력하면 ORA-01438 오류 발생 🧮 2. 다양한 예시로 이해하기 정의허용값 예시허용 여부설명NU.. 더보기
[Oracle 오류 해결] ORA-01438: 지정된 전체 자릿수보다 큰 값이 허용됩니다 오라클에서 데이터를 입력하거나 수정할 때 다음과 같은 에러를 만난 적 있으신가요? ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다. 이번 글에서는 이 오류가 발생하는 원인과 해결 방법을 정리해 보겠습니다. 📌 1. 에러 원인이 오류는 NUMBER(p, s) 형식의 컬럼에 지정된 정밀도보다 더 큰 숫자를 넣으려고 할 때 발생합니다.오라클의 NUMBER(p, s)는 아래와 같이 해석됩니다:p: 전체 자릿수 (전체 자리수 = 정수부 + 소수부)s: 소수 자릿수예를 들어,NUMBER(5, 2) 는 총 5자리 숫자 중 소수점 이하가 2자리, 정수부는 최대 3자리까지 허용된다는 의미입니다.즉, 999.99까지 입력 가능하고, 1000.00은 에러가 납니다. ⚠️ 2. 예시로 보는 .. 더보기
[Oracle] 테이블 컬럼명, 데이터 타입, 길이 변경하는 방법 정리 Oracle DB에서 테이블을 설계한 뒤, 실무에서 컬럼명을 바꾸거나 데이터 타입 및 사이즈를 수정해야 하는 경우가 자주 발생합니다. 이 글에서는 오라클에서 컬럼을 변경하는 다양한 방법에 대해 정리합니다. ✅ 1. 컬럼 이름 변경 (RENAME COLUMN)컬럼명을 잘못 지정했거나, 좀 더 의미 있는 이름으로 바꾸고 싶을 때 사용합니다.ALTER TABLE 테이블명RENAME COLUMN 기존컬럼명 TO 새컬럼명; 📌 예시ALTER TABLE EMPLOYEESRENAME COLUMN ENAME TO EMP_NAME; ✅ 2. 컬럼 데이터 타입 변경컬럼의 데이터 타입이나 "사이즈(길이)"를 변경할 때 사용합니다.ALTER TABLE 테이블명MODIFY (컬럼명 데이터타입); 📌 예시: VARCHAR.. 더보기
[Oracle] ORA-01438 오류 해결 – 숫자 컬럼 크기 초과 문제 잡기 🔍 에러 설명❗ ORA-01438 오류 메시지ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.✅ 요약 원인해당 오류는 NUMBER(p, s) 타입의 컬럼에 대해 "p(전체 자릿수)"보다 큰 숫자를 넣으려고 할 때 발생합니다.Oracle은 입력값이 지정된 범위를 초과할 경우 에러를 발생시킵니다. 🔢 예시로 이해하기🔸 테이블 생성 예CREATE TABLE EMP_SALARY ( EMP_ID NUMBER, SALARY NUMBER(5,2) -- 전체 자릿수 5자리, 소수점 2자리);이 경우 최대 입력값은 999.99예를 들어 1000.00, 12345.67 등을 넣으면 오류 발생 🔸 에러 발생 예 INSERT INTO EMP_SALARY VALUES (1.. 더보기
[Oracle] PL/SQL 로그 사용하기 – DBMS_OUTPUT.PUT_LINE() 완전 정복 🔍 개요PL/SQL에서 디버깅이나 실행 흐름을 확인할 때, 가장 많이 사용하는 로그 출력 방법은 DBMS_OUTPUT.PUT_LINE()입니다.이 글에서는 DBMS_OUTPUT 패키지를 활용한 로그 출력 방법과 주의할 점, 실무 팁까지 함께 소개하겠습니다! 🔸 1. DBMS_OUTPUT.PUT_LINE() 이란?Oracle의 DBMS_OUTPUT 패키지는 PL/SQL 블록 실행 중 텍스트를 버퍼에 출력하는 데 사용됩니다.특히 PUT_LINE() 프로시저는 디버깅이나 테스트 시 유용하게 활용됩니다.BEGIN DBMS_OUTPUT.PUT_LINE('로그 메시지 출력!');END; 🔸 2. 출력이 보이지 않는 이유는?Oracle에서는 기본적으로 DBMS_OUTPUT 출력이 비활성화 되어 있습니다... 더보기
[Oracle] 오라클 TO_DATE 함수 – 문자열을 날짜로 정확하게 변환하는 방법 📌 TO_DATETO_DATE는 문자열을 날짜형으로 변환하는 Oracle 내장 함수입니다.잘못된 포맷이나 입력 값으로 인해 에러가 자주 발생하므로, 정확한 포맷 사용이 중요합니다.본 글에서는 TO_DATE 함수의 사용법, 포맷 종류, 예외 상황 등을 설명합니다. 🔹 1. TO_DATE 함수란?TO_DATE 함수는 문자열(String)을 날짜(Date) 형식으로 변환합니다.-- TO_DATE(문자열, '날짜 형식')SELECT TO_DATE('2025-05-02', 'YYYY-MM-DD') FROM DUAL; 🔹 2. 자주 사용하는 날짜 포맷포맷 코드의미예시 포맷 코드의미예시YYYY연도 (4자리)2025YY연도 (2자리)25MM월 (2자리)05DD일 (2자리)02HH24시간 (24시간제)14MI분3.. 더보기
ORA-01843: 지정한 월이 부적합합니다 – 날짜 포맷 불일치 해결법 총정리 🔍 에러 메시지 설명오류 코드: ORA-01843오류 내용: "지정한 월이 부적합합니다"원인 요약: TO_DATE() 또는 TO_TIMESTAMP() 등을 사용할 때, 입력 문자열과 날짜 포맷이 맞지 않아 Oracle이 ‘월’을 인식하지 못할 때 발생 💣 자주 발생하는 상황1. 구분자가 다른 경우-- ❌ 에러 발생 SELECT TO_DATE('2025/05/02', 'YYYY-MM-DD') FROM DUAL;문자열은 /로 구분되어 있는데포맷은 -로 되어 있어 월을 올바르게 파싱하지 못함 2. 월/일 위치가 잘못된 경우-- ❌ 에러 발생 (MM-DD-YYYY로 잘못 지정)SELECT TO_DATE('2025-31-12', 'YYYY-MM-DD') FROM DUAL;31을 월로 인식하려고 하다가 실패 →.. 더보기
Oracle JOIN 문법 총정리: ANSI vs Oracle 방식 완전 정복 Oracle에서 JOIN은 실무에서 가장 많이 쓰이는 SQL 중 하나입니다.(안쓰는 것을 본 적이 없어요!!) 하지만 JOIN 방식이 두 가지(Oracle 고유 방식과 ANSI 표준 방식)로 존재하고, 각각 문법이 달라 처음 접하는 분들은 혼란스러울 수 있습니다. 이 글에서는 JOIN의 기본 개념부터 시작해서 각 JOIN 유형(Inner, Outer, Cross, Self), 그리고 실무에서 자주 하는 실수까지 하나씩 정리해보겠습니다. 1. JOIN이란 무엇인가?JOIN은 두 개 이상의 테이블을 연결해서 하나의 결과를 반환하는 SQL 구문입니다. 관계형 DB에서 분리된 데이터를 논리적으로 연결할 때 필수적으로 사용됩니다. 2. Oracle JOIN 문법의 두 가지 방식✅ Oracle 전통 방식 (WH.. 더보기

728x90