Files
mayfly-go/server/internal/db/dbm/oracle/helper.go

36 lines
931 B
Go
Raw Normal View History

2024-03-26 21:46:03 +08:00
package oracle
import (
"mayfly-go/internal/db/dbm/dbi"
"mayfly-go/pkg/utils/collx"
"strings"
)
var (
columnHelper = &ColumnHelper{}
2024-03-26 21:46:03 +08:00
)
type ColumnHelper struct {
}
func (ch *ColumnHelper) FixColumn(column *dbi.Column) {
// 如果默认值包含.nextval说明是序列默认值为null
if strings.Contains(column.ColumnDefault, ".nextval") {
column.ColumnDefault = ""
}
// 统一处理一下数据类型的长度
if collx.ArrayAnyMatches([]string{"date", "time", "lob", "int"}, strings.ToLower(string(column.DataType))) {
// 如果是不需要设置长度的类型
column.CharMaxLength = 0
column.NumPrecision = 0
} else if strings.Contains(strings.ToLower(string(column.DataType)), "char") {
// 如果是字符串类型长度最大4000否则修改字段类型为clob
if column.CharMaxLength > 4000 {
column.DataType = "NCLOB"
column.CharMaxLength = 0
column.NumPrecision = 0
}
}
}