java.sql.BatchUpdateException: ORA-12899: value too large for column "SCOTT"."EMP1"."JOB" (actual: 12, maximum: 9)
XML 解析資料入庫時拋出,欄位 JOB 實際 12 位元組,定義僅 9 位元組。
SELECT USERENV('LANGUAGE') FROM DUAL;
SIMPLIFIED CHINESE_CHINA.ZHS16GBK → 中文佔 2 位元組SIMPLIFIED CHINESE_CHINA.AL32UTF8 → 中文佔 3 位元組本地資料庫為 AL32UTF8,「項目經理」4 字 × 3 = 12 位元組,超過 VARCHAR2(9) 限制。
CREATE TABLE emp1(
empno NUMBER(4),
ename VARCHAR2(10),
job VARCHAR2(12), -- 擴大至 12 位元組以上
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2)
);
或改用字元語意定義:VARCHAR2(12 CHAR)(12c+ 支援),明確指定字元數而非位元組數。
NLS_CHARACTERSET)CHAR 語意