Oracle 3

[ORACLE] NUMBER(,)타입 사이즈 줄이기 오류 ORA-01440 해결 방법

ORA-01440: column to be modified must be empty to decrease precision or scale기존에 정의된 데이터 타입 사이즈보다 작은 크기의 사이즈로 ALTER MODIFY(변경)하려고 할 때 발생한다.원래부터 작은 크기의 사이즈로의 수정은 불가하다. (데이터가 모두 NULL인 경우에는 가능할 것으로 예상됨) 원인 아래와 같이 기존에 NUMBER(17,5)로 즉, 총 17자리이되 정수 12자리 소수 5자리로 구성된 NUMBER 타입의 변수를 NUMBER(15,5)로 총 자리 수를 줄일 때 에러가 발생한 것을 볼 수 있다. 해결 방법1. 수정하려던 사이즈로 새 컬럼을 추가(add)2. temp 컬럼에 기존의 값 넣기(update)3. 기존 컬럼 삭제(..

Oracle 2025.04.14

[SQL] WHERE절에 집계함수? GROUP BY 없이 HAVING절?

결론부터 말하자면, WHERE 절에 집계함수는 사용 불가능하고, GROUP BY절이 없어도 HAVING절은 사용 가능하다.  총 학생 수가 240보다 작은 경우에만 총 학생 수를 조회하는 쿼리를 짜려고 한다. ( 학생 수 총계: 238 )테이블명: 학생반학생수130230328435530630730825 보통 쿼리의 조건을 WHERE절로 걸기 때문에 아래와 같이 WHERE절을 이용해 짜는 실수를 범할 수 있다.SELECT SUM(학생수)FROM 학생WHERE SUM(학생수)  그러나 WHERE절에서는 집계함수를 사용할 수 없다. 이 때, HAVING 절을 이용하면 된다.많은 사람들이 GROUP BY와 함께 사용하고 있는 HAVING절은, 사실 GROUP BY절이 없어도 단독으로 사용 가능하다.따라서 집계함..

Oracle 2025.01.15

[ORACLE] sys 계정으로 접속하기(터미널cmd, SQLDeveloper)

터미널과 SQL Developer에서 Local의 sys계정으로 접속하는 방법을 담았다.sys계정은 만드는 것이 아니라 원래 존재하는 것으로, 바로 접속하면 된다.Terminal(cmd)터미널에서 sql을 시작한다.sqlplus유저명과 비밀번호를 입력하라고 뜬다. 유저명에는 sys as sysdba, 비밀번호에는 오라클을 처음 설치할 때 지정한 관리자 비밀번호를 입력한다.여기서 sys as sysdba는 sysdba인 sys유저라는 의미이다.오라클이 처음 설치될 때 만들어지는 sys계정은, dba(db 관리자)권한까지 부여된 시스템 계정이므로, sysdba 권한을 가진 sys유저라는 의미이다. 이렇게 Terminal로 sys계정에 접속했다.앞으로, 이 sys계정을 통해 다른 db유저를 만들 수 있다. S..

Oracle 2025.01.03