본문 바로가기

oracle17

[Oracle] ORA-00984: 열을 사용할 수 없습니다. "column not allowed here" ORA-00984 : 열을 사용할 수 없습니다. : "column not allowed here" SQL 오류: ORA-00984: 열을 사용할 수 없습니다 00984. 00000 - "column not allowed here" *Cause: *Action: SQL 구문에서 해당 컬럼에 적합하지 않은 값을 대입하려고 시도할 경우에 발생합니다. SQL문에서 문자열에 작은따옴표( ' ) 대신 큰따옴표( " )를 사용한 경우 내장 함수의 이름이 틀린 경우 문자열을 입력해야 하는 데 작은따옴표를 잊어버린 경우 CREATE TABLE person ( name VARCHAR2(30), age NUMBER(3), birthday DATE ); -- name 컬럼의 문자열에 작은따옴표가 없음. INSERT INTO .. 2022. 5. 27.
[Oracle] ORA-08002: 시퀀스 xxx.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 ORA-08002 : 시퀀스 xxx.CURRVAL은 이 세션에서는 정의되어 있지 않습니다. ORA-08002: 시퀀스 PRODUCT_SEQ.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 08002. 00000 - "sequence %s.CURRVAL is not yet defined in this session" *Cause: sequence CURRVAL has been selected before sequence NEXTVAL *Action: select NEXTVAL from the sequence before selecting CURRVAL 시퀀스 현재 값을 조회하는 방법은 SELECT 시퀀스명.CURRVAL 입니다. 그러나 CURRVAL 값은 시퀀스값이 한 번 이상 읽히지 않으면 조회가.. 2022. 5. 27.
[java] Oracle 버전 별 JDBC Driver 다운로드 및 호환성 확인 벌써 부터 쓸데없는(?) 걱정이 생겨서 찾아봤습니다. 별 것 아니라고 생각되기도 하지만 늘 소프트웨어의 버전과 호환성은 어느날 갑자기 개발자를 괴롭히는 적입니다. Oracle을 사용한 지도 제법 오래되었는데 벌써 Oracle Database 21c (21.5) 버전까지 올라갔네요. 아직도 옛날 버전을 사용하고 있는 시스템들도 있을 것 같아 생각난 김에 한 번 정리해봤습니다. 1. 최신 Oracle JDBC Driver 다운로드 가장 최신 버전의 Oracle JDBC Driver는 아래 링크에서 다운로드 받을 수 있습니다. https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html 페이지를 한 번 미리 살펴보면 Oracle 21c,.. 2022. 5. 25.
[Oracle] sys, system 계정 비밀번호 재설정 방법 이제 그만 까먹을 때도 되었는데... 괜스레 비밀번호를 너무 간략하게 사용하는 습관을 들이려고 어려운 비밀번호를 설정했었습니다. 다시금 오랜만에 system 계정으로 접근하려고 보니 비밀번호를 까먹었네요. 다행히 로컬 컴퓨터에 오라클이 설치되어 있기에 간단하게 아래의 방법으로 변경했습니다. 비밀번호 재설정 방법 한 화면으로 설명하면 위와 같습니다. 한 줄씩 살펴보면 다음과 같습니다. 1. Windows CMD 창 띄우기 방법은 여러 가지가 있습니다만 저는 [윈도키+R] 키를 눌러 실행 창을 띄운 다음 'cmd'를 입력하고 실행합니다. Oracle DB가 설치되어 있는 컴퓨터의 cmd 창입니다. 만약 다른 컴퓨터에 오라클이 설치되어 있다면 다른 컴퓨터에서 실행해야 합니다. 2. sqlplus 접속 > sq.. 2022. 5. 24.
[Oracle] 내장함수 : 집계함수(그룹함수) Oracle에서 사용할 수 있는 내장함수 가운데서 GROUP BY절과 함께 사용하기도 해서 그룹함수라고도 불리는 집계함수들이 있습니다. 이 함수는 여러 행의 그룹을 묶어서 단일 행을 반환합니다. 이 집계 함수들은 다음과 같습니다. 1. 집계함수 (그룹함수) 함수명 양식 기능 설명 COUNT COUNT(expr) - 쿼리에서 반환한 행 수를 반환 - 컬럼명을 지정하면 null이 아닌 행 수를 반환 - 컬럼명에 DISTICT를 지정하면 중복을 제외한 행 수를 반환 - 별표(*)를 지정하면 중복 및 null을 포함한 모든 행을 반환 SUM SUM(expr) - 쿼리에서 반환한 행들의 합계 값을 반환 - 숫자형 컬럼에 사용 AVG AVG(expr) - 쿼리에서 반환한 행들의 평균 값을 반환 - 숫자형 컬럼에 사.. 2022. 5. 23.
[Oracle] 내장함수 : 비교함수, 디코딩 함수 Oracle에서 사용할 수 있는 내장 함수에서 비교적 자주 사용하는 비교 함수와 디코딩 함수들은 다음과 같습니다. 1. 비교함수 함수명 양식 기능 설명 GREATEST GREATEST(expr1, expr2, ...) - 매개변수 중 가장 큰 값을 반환 - 첫번째 값의 데이터 타입을 기준으로 나머지 매개변수의 데이터 타입을 변환하여 비교함 - null이 있으면 무조건 null을 반환 LEAST LEAST(expr1, expr2, ...) - 매개변수 중 가장 작은 값을 반환 - 첫번째 값의 데이터 타입을 기준으로 나머지 매개변수의 데이터 타입을 변환하여 비교함 1.1 GREATEST(expr1, expr2, ...) GREATEST(expr1, expr2, ...) 매개변수 중 가장 큰 값을 반환 매개변.. 2022. 5. 22.
[Oracle] 내장 함수 : NULL 관련 함수 Oracle에서 NULL은 중요하게 다루어야 할 값입니다. 덕분에(?) NULL을 다룰 수 있는 다수의 함수들이 있습니다. NULL 관련 함수는 다음과 같습니다. 1. NULL 관련 함수 함수명 양식 기능 설명 NVL NVL(expr1, expr2) expr1 != null : expr2 반환 expr1 = null : expr2 반환 NVL2 NVL2(expr1, expr2, expr3) expr1 != null : expr2 반환 expr1 = null : expr3 반환 COALESCE COALESCE(expr1, expr2, ...) expr# 가운데서 null이 아닌 첫 번째 표현식(expr#)을 반환 NULLIF NULLIF(expr1, expr2) expr1 = expr2 : null 반환 .. 2022. 5. 14.
[Oracle] 내장 함수 : 형 변환 함수 Oracle에서 사용할 수 있는 형 변환 함수들은 다음과 같습니다. 1. 형 변환 함수 함수명 양식 기능 설명 TO_CHAR TO_CHAR(num or date, format) 숫자(num) or 날짜(date)를 형식에 맞는 문자열로 변환 TO_NUMBER TO_NUMBER(str, format) 형식(format)의 문자열(str)을 숫자로 변환 TO_DATE TO_TIMESTAMP TO_DATE(str, format) TO_TIMESTAMP(str, format) 형식(format)의 문자열(str)을 날짜로 변환 형식(format)의 문자열(str)을 TIMESTAMP로 변환 BIN_TO_NUM BIN_TO_NUM(2진수) 콤마로 구분된 2진수를 10진수로 변환 NUMTODSINTERVAL NUM.. 2022. 5. 13.
[Oracle] Select count(*), count(1), count(column_name), count(DISTINCT column_name) 차이점 Oracle에서 조건에 맞는 행의 숫자를 세는 COUNT 함수가 있습니다. 일반적으로 테이블 전체 혹은 조건에 맞는 ROW(행)의 수를 파악하기 위해서 SELECT COUNT(*) FROM 문을 많이 사용합니다. 그런데 가끔 COUNT(*) 대신 COUNT(1)을 사용하는 것이 성능이 더 좋다는 얘기가 있어서 확인해보고, COUNT문 사용 시 컬럼명을 적용하는 것에 대해서 찾아보고 정리하였습니다. 1. COUNT(*) vs COUNT(1) COUNT(*)과 COUNT(1)에 대한 논쟁은 그동안 많은 포럼에서 차이점에 대한 논쟁이 있었습니다만, 결론부터 얘기하자면 실제 성능에는 차이가 없으므로 보편적인 COUNT(*)을 사용할 것을 언급하고 있습니다. 실제로 제가 실행계획을 분석해봐도 동일했습니다. -- .. 2022. 5. 12.
[Oracle] 내장 함수 : 날짜 함수, 시간 함수 Oracle에서 사용할 수 있는 날짜 함수와 시간 함수들은 다음과 같습니다. 1. 날짜 함수, 시간 함수 함수명 양식 기능 설명 SYSDATE SYSTIMESTAMP SYSDATE SYSTIMESTAMP 현재 일자와 시간을 DATE형으로 반환 현재 TIMESTAMP를 반환 CURRENT_DATE CURRENT_TIMESTAMP CURRENT_DATE CURRENT_TIMESTAMP 현재 세션의 일자와 시간을 DATE형으로 반환 현재 세션의 TIMESTAMP를 반환 ADD_MONTHS ADD_MONTHS(date, int) 날짜(date)에 숫자(int)만큼의 월을 더한 날짜를 반환 EXTRACT EXTRACT(format FROM DATE '날짜') 날짜에서 형식(format)의 값을 구한다 형식: YE.. 2022. 5. 10.