반응형
이 오류는 현업에서 데이터 수정하시는데 자꾸 오류가 난다고 하셔서
로그를 보다가 발견한 오류이다.
컬럼에 설정된 문자열 사이즈보다 큰 문자열을 넣으려고 하면 나는 오류이다.
매우 간단!
🧠 이 오류는 왜 발생할까?
이 오류는 주로 VARCHAR2(4000)
타입의 컬럼에 4000바이트가 넘는 문자열을 삽입하려 할 때 발생합니다.
Oracle DB에서 VARCHAR2
컬럼은 최대 4000바이트까지만 저장할 수 있기 때문에,
그보다 큰 문자열을 넣으려고 하면 다음과 같은 오류가 발생하게 됩니다:
ORA-01461: can bind a LONG value only for insert into a LONG column
이럴 때는 CLOB(Character Large Object) 타입으로 컬럼을 변경하거나,
입력 데이터를 조정해 오류를 방지해야 합니다.
🛠 해결 방법
1. 데이터 타입을 CLOB
으로 변경 -> 매우 비현실적
ALTER TABLE your_table MODIFY your_column CLOB;
이렇게 컬럼의 타입을 변경하면 4000바이트를 초과하는 데이터를 저장할 수 있게 됩니다.
단, CLOB
은 VARCHAR2
와는 달리 저장 방식이나 조회 방식에서 차이가 있으므로
해당 컬럼을 자주 사용하는 서비스라면 성능 및 쿼리 방식을 함께 고려해야 합니다.
현실에선 이렇게 데이터 타입을 변경할 수 없다.
데이터 넘어오기 전 화면에서 사이즈 체크를 잘 하는 수 밖엔..
반응형
'애플리케이션 개발 > SQL' 카테고리의 다른 글
[SQL] ORA-00932 데이터 유형이 일치하지 않습니다 (0) | 2025.04.22 |
---|---|
[SQL] ORA-01427 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. (0) | 2024.04.29 |
[SQL] ORA-01461 LONG 값은 LONG 열에 삽일할 때만 바인드할 수 있습니다. (0) | 2024.04.11 |
[SQL] ORA-00923 FROM 키워드가 필요한 위치에 없습니다. (0) | 2023.06.05 |
[SQL] cron(크론) (0) | 2023.06.05 |