fix columnType error

This commit is contained in:
SwallowGG
2024-07-11 13:56:32 +08:00
parent 3961610e50
commit 493f934a2c
23 changed files with 119 additions and 78 deletions

View File

@ -16,7 +16,6 @@ import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class SqlServerDBManage extends DefaultDBManage implements DBManage {
private String tableDDLFunction
@ -108,7 +107,7 @@ public class SqlServerDBManage extends DefaultDBManage implements DBManage {
for (int i = 1; i <= metaData.getColumnCount(); i++) {
ValueProcessor valueProcessor = Chat2DBContext.getMetaData().getValueProcessor();
JDBCDataValue jdbcDataValue = new JDBCDataValue(resultSet, metaData, i, false);
String valueString = valueProcessor.getJdbcValueString(jdbcDataValue);
String valueString = valueProcessor.getJdbcSqlValueString(jdbcDataValue);
valueList.add(valueString);
}
String insertSql = sqlBuilder.buildSingleInsertSql(databaseName, schemaName, tableName, columnList, valueList);

View File

@ -17,6 +17,7 @@ import ai.chat2db.spi.jdbc.DefaultMetaService;
import ai.chat2db.spi.model.*;
import ai.chat2db.spi.sql.SQLExecutor;
import ai.chat2db.spi.util.SortUtils;
import ai.chat2db.spi.util.SqlUtils;
import com.google.common.collect.Lists;
import jakarta.validation.constraints.NotEmpty;
import org.apache.commons.lang3.StringUtils;
@ -131,7 +132,9 @@ public class SqlServerMetaData extends DefaultMetaService implements MetaData {
column.setOldName(resultSet.getString("COLUMN_NAME"));
column.setName(resultSet.getString("COLUMN_NAME"));
//column.setColumnType(resultSet.getString("COLUMN_TYPE"));
column.setColumnType(resultSet.getString("DATA_TYPE").toUpperCase());
String dataType = resultSet.getString("DATA_TYPE").toUpperCase();
column.setColumnType(SqlUtils.removeDigits(dataType));
//column.setDataType(resultSet.getInt("DATA_TYPE"));
column.setDefaultValue(resultSet.getString("COLUMN_DEFAULT"));
//column.setAutoIncrement(resultSet.getString("EXTRA").contains("auto_increment"));

View File

@ -4,6 +4,7 @@ import ai.chat2db.spi.ColumnBuilder;
import ai.chat2db.spi.enums.EditStatus;
import ai.chat2db.spi.model.ColumnType;
import ai.chat2db.spi.model.TableColumn;
import ai.chat2db.spi.util.SqlUtils;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
@ -103,7 +104,7 @@ public enum SqlServerColumnTypeEnum implements ColumnBuilder {
private ColumnType columnType;
public static SqlServerColumnTypeEnum getByType(String dataType) {
SqlServerColumnTypeEnum typeEnum = COLUMN_TYPE_MAP.get(dataType.toUpperCase());
SqlServerColumnTypeEnum typeEnum = COLUMN_TYPE_MAP.get(SqlUtils.removeDigits(dataType.toUpperCase()));
if (typeEnum == null) {
return OTHER;
}