시퀀스란 ?Sequence는 고유한 숫자 값을 자동으로 생성하는 객체이다.주로 기본 키 값이나 고유한 식별자를 생성하는 데 사용된다.고유성시퀀스는 생성된 숫자가 항상 고유하도록 한다. 이는 DB에서 각 행을 구분하는 데 중요한 역할을 한다.자동 증가미리 정의된 규칙에 따라 자동으로 숫자를 증가시킨다.원하는 증가 단위를 설정할 수 있다.구성 가능성시퀀스는 다양한 속성을 설정할 수 있다.MINVALUE : 생성 가능한 최소값MAXVALUE : 생성 가능한 최대값INCREMENT BY : 시퀀스 값의 증가 단위CYCLE : 최대값에 도달했을 때 다시 최소값으로 돌아가는지 여부CACHE : 메모리에 미리 생성해 둘 숫자의 수장점자동화 : 수동으로 값을 관리할 필요가 없어 관리가 용이하다.성능 향상 : 미리 값을..
[Language]/SQL
MySQL에 dump 파일을 import 했는데,내 MySQL의 character, collation은 UTF8이지만dump한 스키마의 모든 character, collation은 euckr_korean_ci여서 에러가 생길 것 같아서 미리 변경한다. 1. 데이터베이스 character, collation을 UTF8로 변경/* 데이터베이스 utf8 변경 */ALTER DATABASE 데이터베이스 CHARACTER SET utf8 COLLATE utf8_general_ci; 2. 테이블 및 컬럼 character 변경ALTER TABLE 테이블 CONVERT TO CHARACTER SET utf8; 3. 외래키가 있는 경우 character 변경하는 법테이블 중 외래키의 관계가 있는 경우는 다음의 단계를 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCn5HH%2FbtsIlVgARtT%2F1yWcRViw8GIVowplgiComK%2Fimg.png)
Can't open editor connection이유: ORA-17800: 읽은 호출에서 -1을 가져왔습니다. (CONNECTION_ID=hsPT+IEMTTSx+QuzavjGeg==)1. 에러 배경회사 프로젝트에는 '로컬 DB와 AWS DB' 즉, 2 종류의 DB가 존재한다.해당 에러는 로컬 DB에서 작성한 쿼리를 AWS DB의 Script에 ctrl + c, ctrl + v하여 발생한 결과이다. 로컬 DB와의 구조는 AWS DB 내 구조와 거의 동일하다.스키마 이름, 테이블 이름, 컬럼 이름 모두 동일하다. 2. 에러 원인ORA-17800: 읽은 호출에서 -1을 가져왔습니다.위 에러는 Oracle DB와 관련된 오류로,주로 네트워크 연결 문제나 DB 서버 자체의 문제로 인해 발생한다. 클라이언트가 D..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF6jKo%2FbtsIiyT4Ub6%2FtwAT64CUc9GEbgCpWeM24k%2Fimg.png)
SQL Error [933] [42000]: ORA-00933: SQL command not properly ended해당 오류는 SQL 문장이 올바르게 종료되지 않았거나, 구문적으로 잘못된 부분이 있음을 나타낸다.구문 오류 : SQL 문법이 잘못되었을 때 발생부적절한 키워드 사용 : 특정 SQL 키워드가 잘못 사용되었을 때 발생불필요한 세미콜론 또는 콤마호환되지 않는 SQL 기능 사용 : 사용 중인 Oracle 버전에서 지원하지 않는 SQL 기능을 사용할 때 발생1. 원인현재 Oracle 12 Client 버전을 사용 중이며, 내가 배정 된 프로젝트의 Oracle 버전은 11g이다.아래는 내가 시도했다가 해당 에러를 만나게 된 쿼리이다.SELECT 컬럼FROM 테이블WHERE 컬럼 = '02'FETCH..
쿼리 결과 데이터를 10줄로 제한하여 보고 싶다면 MySQL의 경우, LIMIT를 사용하면 된다.그러나 Oracle에서는 LIMIT를 사용할 수 없다. Oracle에서 결과값을 제한하여 보고 싶다면 ROWNUM을 사용해야 한다. Oracle의 ROWNUM 사용 방식에는 크게 두 가지가 있는데, 이는 상황에 따라 쓰임새가 다르다. 1. ROWNUM 사용SELECT 컬럼FROM 테이블WHERE 컬럼 = '02' AND ROWNUM 해당 쿼리는 ROWNUM만을 사용하여 조건에 맞는 레코드를 10개로 제한한다.그러나 ROWNUM은 쿼리 실행 순서에 따라 적용되기 때문에 특정 상황에서는 예상치 못한 결과를 반환할 수 있다. 2. 서브쿼리 사용 후 ROWNUM 사용SELECT 컬럼FROM ( SELECT 컬럼..
SELECT NVL(a.b, '02') AS b /* 상태(01: open, 02: close, 03: 휴점, 04: 폐점) */ FROM a WHERE 조건 ORDER BY a.b 해당 SQL문에서 'NVL'이 의미하는 바는 무엇인가? 1. NVL 함수란?Oracle SQL에서 자주 사용되는 함수로, 특정 컬럼이나 표현식의 값이 NULL일 경우 대체 값을 반환하는 기능을 한다. NVL 함수의 기본 형식은 다음과 같다.NVL(A, B)* A : 검사할 값이나 컬럼* B : A가 NULL일 때 반환할 대체 값 2. 'SELECT NVL(a.b, '02') AS b' 값 의미SELECT NVL(a.b, '02') AS b /* 상태(01: open, 02: close, 03: 휴점, 04: 폐점) ..
[수정 전 코드]CREATE TABLE 스키마명.테이블명 ( 테이블명1 VARCHAR2(4) DEFAULT '10 ', 테이블명2 VARCHAR2(4) DEFAULT '1000',);위의 코드를 실행하여 테이블 생성 도중 다음과 같은 에러를 만났다.SQL Error [1401] [22001]: ORA-01401: 열에 입력한 값이 너무 큽니다 ORA-01401 오류는 열에 입력한 값이 열의 정의된 크기보다 클 때 발생한다.'테이블명1'의 기본값(default)이 정의된 크기(4)보다 크기 때문에 에러가 났다.테이블명1 VARCHAR2(4) DEFAULT '10 '따라서 다음과 같이 수정한다.테이블명1 VARCHAR2(4) DEFAULT '0010'이 값은 컬럼의 크기 제한을 초과하지 않는다. ✅[수..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmVmn0%2FbtsH8M5j0We%2FMLVGkxWMOgAtNBvKIywMN0%2Fimg.png)
기본적으로 테이블 스페이스를 지정하지 않고 테이블을 생성하면, 기본적으로 할당 된 테이블스페이스에 생성된다.그러나 테이블스페이스를 따로 생성 후 지정하여 테이블 생성 시, 해당 테이블은 지정된 테이블 스페이스에 생성된다. 테이블스페이스를 생성하면 데이터 저장소를 분리하고 관리하는 데 유리한 측면이 있다.대규모 데이터나 특정 애플리케이션의 데이터를 별도의 테이블스페이스에 지정하여,성능을 최적화하거나 관리 효율성을 높일 수 있다. 주요 차이점 [데이터 저장 위치]기본 테이블스페이스 : 테이블이 사용자의 기본 테이블스페이스에 저장된다.지정된 테이블스페이스 : 테이블이 특정 테이블스페이스에 저장된다.[관리 및 성능]기본 테이블스페이스 : 모든 테이블이 기본 테이블스페이스에 저장되므로 관리가 간단하지만, 데이터가..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLVpZt%2FbtsH6zMZdPR%2FLUKL8riroHAHVM50DudRXK%2Fimg.png)
회사에서 받은 접속 정보로 연결하려고 했는데 처음엔 아래와 같은 오류가 나오더니ORA-01017: invalid username/password; logon denied여러번 접속 시도 후에 아래와 같은 오류가 나타났다.ORA-28000: the account is locked1. tnsnames.ora 파일 설정 확인내가 들어갈 접속 정보의 항목이 tnsnames.ora 파일에 올바르게 설정되어 있는지 확인해보자.설정 파일이 제대로 로드될 수 있도록 다음과 같은 항목을 추가하였다.[내 tnsnames.ora 파일 경로]C:\app\oracle_server\product\12.2.0\dbhome_1\network\admin\tnsnames.ora[추가한 항목]SID이름 = (DESCRIPTION ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2GQ4d%2FbtsH42OIg4c%2FBsge4NwoElFudlD0RrnhCk%2Fimg.png)
1. 계정 확인1. 사용자명 'system'으로 PW 입력 후 Oracle - DBeaver 연동▶ Oracle & DBeaver 연동하는 법https://soheepark.tistory.com/161 [Window] Oracle & DBeaver 연동[환경]Window 11 Pro 64-bitOracle Database Client 12.2.0.1.0Oracle Database 12.2.0.1.0DBeaver 24.1.01. DBeaver 실행 - 콘센트 아이콘 클릭2. Oracle 클릭 후 다음3. 정보 입력 - Test Connection ▶ Download driver files더보기Oracle drivesoheepark.tistory.com 2. SQL 편집기 이동 3. 현재 생성된 계정 확인 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkZAfH%2FbtsH2V9osTE%2F8anbru9M3uujGS0p8Qy3M1%2Fimg.png)
[환경]Window 11 Pro 64-bitOracle Database Client 12.2.0.1.0Oracle Database 12.2.0.1.0DBeaver 24.1.01. DBeaver 실행 - 콘센트 아이콘 클릭2. Oracle 클릭 후 다음3. 정보 입력 - Test Connection ▶ Download driver files더보기Oracle driver 파일이 누락되어 아래의 파일 리스트를 다운받아야 한다고 안내창이 나타났다. 그래서 Download 해줬다. 버전들이 다 23, 18이지만 Oracle JDBC 드라이버는 일반적으로 하위 호환성을 가지고 있으므로최신 드라이버가 이전 버전의 데이터베이스와도 정상적으로 작동할 가능성이 크기 때문이다. 데이터베이스 버전과 정확히 일치하는 드라이버를..