OtterMind/Chat2DB · error · IllegalArgumentException
Unsupported Oracle VARCHAR unit: {unit}
Error message
Unsupported Oracle VARCHAR unit: {unit} What it means
Error "Unsupported Oracle VARCHAR unit: {unit}" thrown in OtterMind/Chat2DB.
Source
Thrown at chat2db-community-server/chat2db-community-plugins/chat2db-community-oracle/src/main/java/ai/chat2db/plugin/oracle/OracleSqlGuards.java:61
public static String requireColumnTypeExpression(String typeName) {
if (StringUtils.isBlank(typeName)) {
throw invalid("column type", typeName);
}
scanExpression(typeName.trim(), true, "column type");
return typeName;
}
/**
* Backward-compatible name retained for the existing Oracle call sites.
*/
public static String requireSafeTypeName(String typeName) {
return requireColumnTypeExpression(typeName);
}
public static String requireUnit(String unit) {
String trimmed = StringUtils.trimToEmpty(unit);
if (!"CHAR".equalsIgnoreCase(trimmed) && !"BYTE".equalsIgnoreCase(trimmed)) {
throw new IllegalArgumentException("Unsupported Oracle VARCHAR unit: " + unit);
}
return trimmed;
}
public static String requireAscOrDesc(String value) {
String trimmed = StringUtils.trimToEmpty(value);
if ("ASC".equalsIgnoreCase(trimmed)) {
return "ASC";
}
if ("DESC".equalsIgnoreCase(trimmed)) {
return "DESC";
}
throw new IllegalArgumentException("Invalid Oracle index sort direction: " + value);
}
/**
* Returns the raw hex digits represented by {@code value}. Non-hex input is
* replaced with the caller-provided base16 encoding, which is verified too.View on GitHub (pinned to 5ee1e990e7)
Solutions
- Use BYTE or CHAR as the VARCHAR length unit for Oracle.
- Remove the unit or correct it in the column definition.
When it happens
Trigger: An Oracle VARCHAR column definition used a length unit other than BYTE or CHAR.
Common situations: See trigger scenarios.
AI-assisted analysis of OtterMind/Chat2DB@5ee1e990e7 (2026-08-14).
Data as JSON: /api/errors/1cd6e8c63ae90ce3.
Report an issue: GitHub.