diff --git a/src/main/java/io/mycat/server/handler/ServerPrepareHandler.java b/src/main/java/io/mycat/server/handler/ServerPrepareHandler.java index e12ad5563..c53c26abe 100644 --- a/src/main/java/io/mycat/server/handler/ServerPrepareHandler.java +++ b/src/main/java/io/mycat/server/handler/ServerPrepareHandler.java @@ -26,6 +26,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.nio.CharBuffer; import java.util.Map; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; @@ -281,6 +282,12 @@ public boolean visit(SQLVariantRefExpr x) { parent.replace(x, new SQLCharExpr(value)); return false; } + if (bindValue.value instanceof CharBuffer) { + SQLReplaceable parent = (SQLReplaceable) x.getParent(); + String value = bindValue.value.toString(); + parent.replace(x, new SQLCharExpr(value)); + return false; + } throw new UnsupportedOperationException("unsupport " + bindValue.value); }