📌 "문자열 데이터, 우측 잘림(String data, right truncated)"
너무 긴 문자열을 칼럼에 넣으려고 했을 때 발생하는 오류입니다.
🔍 예시:
CREATE TABLE users (
username VARCHAR(10)
);
INSERT INTO users (username) VALUES ('this_is_too_long');
위의 예제에서 username 칼럼은 최대 10글자까지만 허용하지만, 'this_is_too_long'은 그보다 길어서 오류가 납니다.
✅ 해결 방법:
- 입력 값의 길이가 해당 컬럼이 허용하는 길이보다 긴지 확인하세요.
- 해결 방법은 두 가지입니다:
- 입력 데이터를 자르거나 (예: LEFT(value, 10))
- 테이블의 컬럼 길이를 늘리는 것 (예: VARCHAR(50) 등)
DB2에서 CAST를 사용할 때, 원래 데이터보다 VARCHAR 길이가 더 짧게 지정되면 잘리는(truncated) 데이터가 리턴됩니다.
다만, 오류가 발생하지는 않고 자동으로 앞부분부터 잘라서 반환합니다.
예제:
SELECT CAST('HelloWorld' AS VARCHAR(5)) FROM SYSIBM.SYSDUMMY1;
결과:
Hello
또 다른 예:
SELECT CAST(123456789 AS VARCHAR(4)) FROM SYSIBM.SYSDUMMY1;
결과:
1234
즉, 강제로 짧은 길이로 캐스팅하면, DB2는 남는 뒷부분을 자르고 결과를 줍니다.
하지만 주의할 점은 숫자 타입에서 VARCHAR로 변환 시 숫자가 너무 길면 DB2가 내부적으로 문자열 변환 후 자르기 때문에 값이 왜곡될 수 있습니다.
'[DB]SQL실무' 카테고리의 다른 글
[SQL]WITH 절의 장점 VS 단점 (0) | 2025.03.18 |
---|---|
[SQL]WITH 절 (1) | 2025.03.18 |
[DB2]가상 테이블(DUAL vs SYSDUMMY1) (0) | 2025.03.18 |
[SQL]Agent stack size 에러 (0) | 2025.03.18 |
DBMS별 숫자 형변환 함수 예시 (0) | 2025.03.07 |