📌 "문자열 데이터, 우측 잘림(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'은 그보다 길어서 오류가 납니다.


✅ 해결 방법:

  1. 입력 값의 길이가 해당 컬럼이 허용하는 길이보다 긴지 확인하세요.
  2. 해결 방법은 두 가지입니다:
    • 입력 데이터를 자르거나 (예: 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

+ Recent posts