이번 시간에는 오라클 데이터베이스에서 기본키 인덱스를 일반 인덱스로 대체하는 방법에 대해 알아보겠습니다. 이 방법은 기본키 인덱스가 굳이 필요 없는 테이블에 대하여, 기본키를 없애고 논-유니크 인덱스로 대체하는 방법입니다! 기본키를 일반 인덱스로 대체하는 작업 내용은 다음과 같은 순서로 진행할 예정입니다~ 😘 기본키 인덱스 삭제 대체 인덱스 생성 NUL…
오라클 데이터베이스 연결 부분에서, 다음과 같이 'ORA-12154: TNS:지정된 접속 식별자를 분석할 수 없습니다.' 오류가 발생하여 해결 방법에 대해 알아보도록 하겠습니다. Oracle.ManagedDataAccess.Client.OracleException HResult=0x80004005 메시지=ORA-12154: TNS:…
오라클에서는 CHR 함수를 사용하여 아스키 코드에 해당하는 문자를 반환할 수 있습니다. 예를 들어, CHR(65)는 'A'를 반환합니다. 이 함수를 이용하여 1부터 255까지의 CHR표, 즉 아스키 코드표를 출력해보겠습니다. PL/SQL의 FOR 반복문을 사용하여 특정 범위의 값을 보여드리겠습니다. SET SERVEROUTPUT ON B…
오라클 정규식에서 캐럿(^)은 표현식의 '시작'을 뜻하거나, 'not(~이 아님)' 뜻한답니다. 특정 문자 앞에 캐럿을 사용하는 경우에는 문자가 시작한다는 것을 뜻하며, 브라켓([ 또는 ]) 내에서 사용할 때에는 ~이 아니다라는 것을 뜻합니다. 예제를 통해 간단히 알아보도록 하겠습니다. WITH VW AS (SELECT …
PLS-00371: 에 대해 최대 하나의 선언만 허용됩니다. 오류는 코드에서 보는 바와 같이 PL/SQL 구문을 작성하다가 마주할 수 있는 오류랍니다. (PL/SQL 관련 오류코드는 PLS 라는 접두어가 많은 편입니다) 다음과 같이 실제로 동일한 이름을 가지고 있는 변수를 선언하는 것은 가능한 일입니다. 다만 이 부분은 잠재적으로 오늘의 주제, PLS-…
Oracle에서 boolean 자료형(data type)을 어떻게 사용할까요? 우선 boolean은 기본 오라클 데이터베이스 관리 시스템에서 제공하는 자료형이 아닙니다. 그렇기에 다음과 같이 테이블 생성 시 boolean 타입을 선언하면 ORA-00902: invalid datatype 오류가 발생합니다. Oracle boolean type CREAT…
ORA-01119: '데이터베이스 파일 작성시 오류가 생겼습니다 ORA-27040: 파일 생성 오류, 파일을 생성할 수 없습니다. OSD-04002: unable to open file O/S-Error: (OS 3) 지정된 경로를 찾을 수 없습니다. ORA-01119: 데이터베이스 파일 작성시 오류가 생겼습니다 ORA-01119 오류는 테이블…
'ORA-02063: line가 선행됨 로부터' 오류는 단독으로 발생하는 경우는 거의 없고, 이로 인하여 문제가 되는 후행 예외와 함께 표시가 됩니다. 발생하는 이유가 바로 오라클 데이터베이스 링크이기 때문이지요! 'line이 선행됨'에서 주의 깊게 보아야 할 부분은 괄호 안의 (~로 부터)입니다. 이 부분에서 안내하는 것이 …
'ORA-01722: 수치가 부적합합니다' 오류는 입력을 시도하려는 데이터가 유효하지 않은 숫자 형식일 때에 발생합니다. 간단한 예제를 살펴보며 해결 방법에 대해 알아보도록 합시다~ DELETE FROM emp WHERE ename = 0; ERROR at line 1: ORA-01722: invalid number 위의 예시 쿼리는 …
ORA-00903: 테이블 명이 부적합합니다 오류는 테이블에 대한 데이터 정의 언어(DDL : Data Definition Language), 또는 데이터 조작 언어(DML : Data Manipulation Language)를 사용할 때에 발생합니다. 테이블 명이 기술되어야 할 자리에 예상하지 않은 명령어나 테이블 명 자체가 부적합할 때에 오류가 나타…
오라클 데이터베이스에서 XMLELEMENT, XMLAGG 함수를 사용하는 방법에 대해 알아보도록 합시다. 해당 함수는 보통 로우를 하나의 로우로 합치는 데 사용을 많이 하는데요, 다음과 같이 조회해 볼 수 있답니다. SELECT JOB, XMLELEMENT (BS) AS C, XMLELEMENT (BS, JOB) AS …
ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다 오류는 문장에서 설명하듯이, 테이블에 하나를 초과하는 기본 키를 설정하려고 시도하는 경우에 발생합니다. 기본키는 오직 하나만 가능하므로, 테이블이 가지고 있는 기본키를 다시 확인하거나, 대체키를 기본키로 설정하기 위한 검토를 해주세요. 기본키를 변경하려면 기존의 기본키를 정리해야 합니다. …
ORA-01652: 임시 세그먼트를 확장할 수 없습니다 오류를 해결하는 방법에 대해 알아보도록 합시다. 해당 오류는 보통 영문으로 숫자와 함께 다음과 같은 표현으로 안내해드립니다 : ORA-01652: unable to extend temp segment by in tablespace 실제로는 위와 같은 문구 그대로 오류가 발생하지는 않고, 2의 배…
ORA-00957: 열명이 중복되었습니다 오류는 테이블 또는 뷰 생성 시 컬럼명이 중복되었을 때 발생합니다. 원인은 크게 다음과 같습니다. 컬럼 개수가 많은 테이블에 추가로 동일한 이름의 컬럼을 추가하는 경우 외래키를 동일한 컬럼명으로 사용 시 해당 두 테이블을 조인하여 테이블 및 뷰를 생성하는 경우 다음은 똑같은 컬럼명을 사용하여 오류가 발생하…
ORA-02291: 무결성 제약조건이 위배되었습니다- 부모 키가 없습니다 오라클과 같은 데이터베이스는 '무결성'을 제약조건으로 하여금 보장할 수 있습니다. 이때 제약조건을 위배하는 경우, 위배하는 종류에 따라 오류를 발생시킨답니다. 이번 주제 'ORA-02291: 무결성 제약조건이 위배되었습니다- 부모 키가 없습니다' 오류는…
ORA-12154: tns 지정된 접속 식별자를 분석할 수 없음 오류는 문자 그대로 접속 식별자(connect identifier)를 분석할 수 없기에 발생합니다. 접속 식별자는 접속 기술자(connect descriptor), 데이터베이스 별명/별칭(database alias), 데이터 소스(data source) 등 여러 가지 이름으로 불립니다. …
ORA-02248 invalid option for ALTER SESSION 오류는 ALTER SESSION 명령문을 실행할 때, 유효하지 않은 옵션을 설정하는 경우에 발생합니다. ALTER SESSION 옵션은 오라클 버전마다 다르기 때문에, 특정 버전에서 실행이 되던 명령어가 다른 버전에서 오류가 발생하기도 합니다. ORA-02248: invalid …
ORA-01451: column to be modified to NULL cannot be modified to NULL 오류는 NULL이 될 수 없는 컬럼을 NULL로 수정하려고 시도할 때 발생합니다. 예시 자료는 다음과 같습니다. ALTER TABLE USER_NAME.TABLE_NAME MODIFY COLUMN_NAME NULL; ERROR a…
ORA-02296: 제약을 사용 가능하게 할 수 없음 - 부합하는 값이 없습니다 오류는 ALTER TABLE 명령을 시도할 때, NULL값과 관련한 제약조건으로 발생합니다. 해당 오류는 ORA-02296: 사용으로 설정 불가 - 널 값이 발견되었습니다. 설명으로 발생하는 경우도 있습니다. cannot enable (string.string) - null…
ORA-01940: 현재 접속되어 있는 사용자는 삭제할 수 없습니다오류는 삭제를 시도하려는 대상 사용자의 세션이 활성화되어 있는 경우에 발생합니다. 즉, 해당 사용자가 현재 연결이 활성 상태이기 때문에 발생하는 문제입니다. 오라클 데이터베이스는 삭제하려는 사용자가 연결되어 있는 상태일 때, 해당 오류와 함께 실행이 실패합니다. 이유는 사용자가 활성화되어…