반응형

개발 & 데이터베이스/ORACLE 36

오라클 자주 발생하는 에러 종류 및 해결 방법

오라클에는 다양한 에러들이 존재합니다. 오라클을 사용하면서 흔하게 발생하는 에러와 대략적인 해결 방법에 대해서 알아보겠습니다. 자주 발생하는 에러 코드 모음 1. ORA-00001: 무결성 제약 조건에 위배됩니다. (PK 중복) - 기본키(PK)가 중복값인지 확인 2. ORA-00600: internal error code, arguments: [], [], [] (DB 내부오류) - CLOB 컬럼이 있는지 확인 3. ORA-00904: invalid identifler, 부적합한 식별자 - 테이블에 없는 컬럼명을 조회했을 때 발생하므로 컬럼명 확인 4. ORA-00918: column ambiguously defined, 열의 정의가 애매합니다. - 조회, 조건절에 있는 특정 컬럼이 어떤 테이블의 컬럼..

오라클 조인의 종류와 사용법 (내부조인, 외부조인)

조인 정의 2개 이상의 서로 관계에 있는 테이블 내용을 1개의 결과셋으로 만드는 작업 조인의 종류 종류 설명 등가 조인 테이블을 연결한 후 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식 내부 조인, 단순 조인으로 부름 비등가 조인 등가 조인 외의 방식 열의 일치 여부를 알 수 없을 때 사용 (= 연산자를 제외한 연산자를 사용) 자체 조인 하나의 테이블을 여러 개의 테이블처럼 활용하여 조인하는 방식 SELECT문 내부에서 별칭을 다르게 주어 논리적으로 다른 테이블인 것처럼 명시 외부 조인 어느 한쪽이 NULL이어도 강제로 출력하는 방식 실습해보기 우선 테스트를 위해서 두 가지 테이블 생성한다. CREATE TABLE EMP( EMPNO INTEGER NOT NULL, ENAME ..

오라클 숫자 함수와 LPAD, RPAD 함수

오늘은 오라클에서 제공하는 숫자 함수와 LPAD, RPAD 함수에 대해서 알아보겠습니다. ABS 절대값을 출력하는 함수 SELECT ABS(-27) FROM DUAL; 결과: 27 SIGN 부호를 확인하는 함수 SELECT SIGN(27), SIGN(-27), SIGN(0) FROM DUAL; 결과: 1, -1, 0 ROUND(숫자, [반올림 자릿수]) [반올림 자릿수] 생략 시에 소숫점 첫 번째 자리에서 반올림 SELECT ROUND(0.123), ROUND(2.553,1) FROM DUAL; 결과: 0, 2, 6 TRUNC(A, [B]) [B]가 생략 시 소숫점 아래 모든 자리를 잘라냄 SELECT TRUNC(1234.56789), TRUNC(1234,154516, -1) FROM DUAL; 결과: ..

오라클 DML 기본문법 (INSERT, UPDATE, DELETE, SELECT)

DML (Data Manipulation Language) 테이블의 데이터를 검색, 삽입, 수정하는데 사용하는 언어로 데이터 조작어라고 불림 1. SELECT - 조회 SELECT [컬럼] FROM [테이블명] WHERE [검색조건] [GROUP BY 묶는 기준] [HAVING 묶는 조건] [ORDER BY 오름차순/내림차순] [ASE/DESC] ; ※ WHERE 절에 사용되는 술어 술어 연산자 예시 설명 비교 =, , = WHERE NUM > 500 반환값은 단일 행 또는 다중행 범위 BETWEEN WHERE NUM BETWEEN 0 AND 500 반환값은 단일 행 또는 다중행 집합 IN, NOT IN WHERE NUM IN(100, 200, 300) IN 연산자는 검색 조건 1000개까지 가능 IN ..

오라클 자료형 변환 함수 TO_CHAR, TO_DATE와 DECODE함수, CASE문

자료형 변환 함수 형 변환에는 두 가지 종류가 존재합니다. 자동으로 형 변환이 되는 암시적 형 변환, 사용자가 자료형을 직접 지정해주는 명시적 형 변환입니다. 1. 날짜, 숫자 데이터를 문자 데이터로 변환하는 함수 기준 포맷 설명 CC, SCC 네 자리 연도의 끝 두자리를 기준으로 사용 (2021년이면 2050 이하이므로, 반올림 경우 2021년으로 처리) SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y 날짜 데이터의 해당 연, 월, 일의 7월 1일 기준 (2021년 7월 1일 경우, 2022년으로 처리) IYYY, IYY IY, I ISO 8061에서 제정한 날짜 기준년도 기준 Q 각 분기의 두 번째 달의 16일 기준 MONTH, MON, MM, RM 각 달의 16일 기준 WW 해당 ..

오라클 잡 스케줄러 생성 및 실행 방법

잡 스케줄러 정의 주기적으로 수행되는 쿼리나 프로시저 등을 시간, 일, 월 단위로 실행하는 동작, 쉽게 말해서 매크로 잡 스케줄러 생성 DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT( job => X , what => '프로시저명;' , next_date => to_date('04-02-2021 20:29:24', 'dd/mm/yyyy hh24:mi:ss') , interval => 'SYSDATE +1/24/6' , no_parse => FALSE ); SYS.dbms_output.put_line('Job Number is : ' ||to_char(x)); commit; END; / job : 실행 job number what : 실행할 PL/SQL 프로시저 명 next..

ORACLE 프로시저 생성 및 커서 사용 방법

PL/SQL 정의 오라클에서 프로시저 작성을 위해 사용하는 문법 다른 데이터베이스에서 사용 불가능 프로시저 정의 자주 사용하는 구문을 하나의 이름으로 사용 함수는 반드시 리턴을 해야하지만 프로시저는 리턴 여부가 상관 없음 실제 테이블의 이름이나 구조를 노출하지 않고 사용이 가능함 실행 속도가 빠름 프로시저 생성 CREATE [OR REPLACE] PROCEDURE 프로시저이름 ( 매개변수 [IN/OUT] 자료형, ··· ) IS/AS -- 프로시저 안에서 사용할 변수 BEGIN -- SQL 쿼리 [EXCEPTION] -- ERROR 발생 시 수행하는 문장 END 프로시저이름; / ⑴ OR REPLACE : 프로시저가 존재하는 경우 지우고 새로 만들기 ⑵ IN/OUT : IN은 프로시저를 호출할 때 대입해..

오라클 LIKE 함수, REGEXP_LIKE 함수 (다중 LIKE)

LIKE, REGEXP_LIKE 함수 정의 해당 컬럼의 문자열 안에서 특정 문자값이 포함되어 있는지 찾을 때 사용하는 함수 LIKE, REGEXP_LIKE 함수 사용 방법 CREATE TABLE STUDENT ( SNAME VARCHAR2 (20) NOT NULL, S_ID INTEGER NOT NULL, PRIMARY KEY(S_ID) ); INSERT INTO STUDENT VALUES('홍길동' 1); INSERT INTO STUDENT VALUES('김두부' 2); INSERT INTO STUDENT VALUES('손오공' 3); INSERT INTO STUDENT VALUES('유재석' 4); INSERT INTO STUDENT VALUES('강호동' 5); INSERT INTO STUDENT ..

오라클 그룹화 함수 (GROUP BY, HAVING)

GROUP BY 정의 데이터를 그룹으로 묶을 때 사용하며 보통 집계함수인 COUNT, SUM, AVG, MAX, MIN 함수와 함께 사용함 GROUP BY 문법 SELECT [컬럼] FROM [테이블명] WHERE [조건] GROUP BY [컬럼] HAVING [조건] GROUP BY 사용 방법 GROUP BY를 사용하기 위해 테스트 데이터를 생성하겠습니다. CREATE TABLE EXA( NAME VARCHAR2(20) NOT NULL, SCORE INTEGER NOT NULL, GRADE INTEGER NOT NULL, PRIMARY KEY(NAME) ); INSERT INTO EXA VALUES('홍길동', 70, 2); INSERT INTO EXA VALUES('원숭이', 30,2); INSERT..

[ORACLE] 시퀀스(Sequence) 생성과 사용 방법

시퀀스 정의 시퀀스(Sequence)는 오라클에서 지원하는 기능 중 하나로써 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체입니다. 보통 기본키(PRIMARY KEY) 값에 중복을 방지하기 위해서 사용됩니다. 시퀀스는 테이블과 독립적으로 저장, 생성되고 메모리에 Cache 되었을 때 시퀀스 값의 액세스 효율이 증가합니다. 시퀀스 생성 방법 CREATE SEQUENCE [시퀀스 이름] INCREMENT BY [증감 숫자] START WITH [시작 숫자] NOMINVALUE OR MINVALUE [최소값] NOMINVALUE OR MAXVALUE [최대값] CYCLE OR NOCYCLE CACHE OR NOCACHE ORDER OR NOORDER ⑴ INCREMENT BY: 양수면 숫자만큼 ..

반응형