Documentation
¶
Index ¶
- Constants
- Variables
- func ConvertNameToFormat(x string) string
- func Create(db *gorm.DB)
- func Delete(db *gorm.DB)
- func IsReservedWord(v string) bool
- func MapStringToInterface(slice []string) []any
- func New(config Config) gorm.Dialector
- func Open(dsn string) gorm.Dialector
- func Query(db *gorm.DB)
- func Update(db *gorm.DB)
- type Config
- type Dialector
- func (d Dialector) BindVarTo(writer clause.Writer, stmt *gorm.Statement, v any)
- func (d Dialector) ClauseBuilders() map[string]clause.ClauseBuilder
- func (d Dialector) DataTypeOf(field *schema.Field) string
- func (d Dialector) DefaultValueOf(*schema.Field) clause.Expression
- func (d Dialector) DummyTableName() string
- func (d Dialector) Explain(sql string, vars ...any) string
- func (d Dialector) GetAdapter() driver_adapter.Adapter
- func (d Dialector) Initialize(db *gorm.DB) (err error)
- func (d Dialector) Migrator(db *gorm.DB) gorm.Migrator
- func (d Dialector) Name() string
- func (d Dialector) QuoteTo(writer clause.Writer, str string)
- func (d Dialector) RewriteLimit(c clause.Clause, builder clause.Builder)
- func (d Dialector) RewriteLimit11(c clause.Clause, builder clause.Builder)
- func (d Dialector) RollbackTo(tx *gorm.DB, name string) error
- func (d Dialector) SavePoint(tx *gorm.DB, name string) error
- type Migrator
- func (m Migrator) AddColumn(value any, field string) error
- func (m Migrator) AlterColumn(value any, field string) error
- func (m Migrator) AlterDataTypeOf(stmt *gorm.Statement, field *schema.Field) (expr clause.Expr)
- func (m Migrator) ColumnTypes(value any) ([]gorm.ColumnType, error)
- func (m Migrator) CreateConstraint(value any, name string) error
- func (m Migrator) CreateOnUpdateTrigger(value any, rel *schema.Relationship) error
- func (m Migrator) CreateTable(values ...any) error
- func (m Migrator) CurrentDatabase() (name string)
- func (m Migrator) DropColumn(value any, name string) error
- func (m Migrator) DropConstraint(value any, name string) error
- func (m Migrator) DropIndex(value any, name string) error
- func (m Migrator) DropOnUpdateTrigger(value any, rel *schema.Relationship) error
- func (m Migrator) DropTable(values ...any) error
- func (m Migrator) FullDataTypeOf(field *schema.Field) (expr clause.Expr)
- func (m Migrator) HasColumn(value any, field string) bool
- func (m Migrator) HasConstraint(value any, name string) bool
- func (m Migrator) HasIndex(value any, name string) bool
- func (m Migrator) HasTable(value any) bool
- func (m Migrator) RenameIndex(value any, oldName, newName string) error
- func (m Migrator) RenameTable(oldName, newName any) (err error)
- func (m Migrator) TryRemoveOnUpdate(values ...any) error
- type Namer
- func (n Namer) CheckerName(table, column string) (name string)
- func (n Namer) ColumnName(table, column string) (name string)
- func (n Namer) IndexName(table, column string) (name string)
- func (n Namer) JoinTableName(table string) (name string)
- func (n Namer) RelationshipFKName(relationship schema.Relationship) (name string)
- func (n Namer) SchemaName(table string) string
- func (n Namer) TableName(table string) (name string)
- func (n Namer) UniqueName(table, column string) string
Constants ¶
View Source
const ( OracleVersion10 = 10 // Oracle 10g OracleVersion11 = 11 // Oracle 11g(不含 IDENTITY 列、OFFSET/FETCH 分页) OracleVersion12 = 12 // Oracle 12c(引入 IDENTITY 列、OFFSET/FETCH 分页;12.1 起支持 Extended 32k VARCHAR2) OracleVersion18 = 18 // Oracle 18c(12.2 的再版) OracleVersion19 = 19 // Oracle 19c OracleVersion21 = 21 // Oracle 21c(引入原生 BOOLEAN 列类型) OracleVersion23 = 23 // Oracle 23ai(引入 VECTOR 类型) )
Oracle 版本主版本号常量(对应各版本引入的数据库特性)
View Source
const RowNumberAliasForOracle11 = "ROW_NUM"
Variables ¶
View Source
var ReservedWords = hashset.New(MapStringToInterface(ReservedWordsList)...)
View Source
var ReservedWordsList = []string{}/* 201 elements not displayed */
Functions ¶
func ConvertNameToFormat ¶
func IsReservedWord ¶
Types ¶
type Config ¶
type Config struct {
DriverName string
DSN string
Conn gorm.ConnPool //*sql.DB
DefaultStringSize uint
DBName string
DBVer string
DriverType driver_adapter.DriverType // 新增:驱动类型(go-ora 或 godror)
SkipQuoteIdentifiers bool // 新增:是否跳过标识符引用
}
type Dialector ¶
type Dialector struct {
*Config
}
func (Dialector) ClauseBuilders ¶
func (d Dialector) ClauseBuilders() map[string]clause.ClauseBuilder
func (Dialector) DefaultValueOf ¶
func (d Dialector) DefaultValueOf(*schema.Field) clause.Expression
func (Dialector) DummyTableName ¶
func (Dialector) GetAdapter ¶
func (d Dialector) GetAdapter() driver_adapter.Adapter
func (Dialector) RewriteLimit ¶
func (Dialector) RewriteLimit11 ¶
Oracle11 Limit
type Migrator ¶
func (Migrator) AlterDataTypeOf ¶
func (Migrator) ColumnTypes ¶
func (m Migrator) ColumnTypes(value any) ([]gorm.ColumnType, error)
ColumnTypes return columnTypes []gorm.ColumnType and execErr error
func (Migrator) CreateOnUpdateTrigger ¶
func (m Migrator) CreateOnUpdateTrigger(value any, rel *schema.Relationship) error
CreateOnUpdateTrigger 创建 ON UPDATE 触发器 Oracle 不支持原生的 ON UPDATE 外键操作,需要通过触发器模拟
func (Migrator) CreateTable ¶
func (Migrator) CurrentDatabase ¶
func (Migrator) DropOnUpdateTrigger ¶
func (m Migrator) DropOnUpdateTrigger(value any, rel *schema.Relationship) error
DropOnUpdateTrigger 删除 ON UPDATE 触发器
func (Migrator) FullDataTypeOf ¶
FullDataTypeOf 返回字段的完整数据库类型(版本感知的默认值处理)。 GORM 标准实现会把 DefaultValue 直接拼成 "DEFAULT xxx",对 11g 下引用序列的 NEXTVAL 默认值会生成非法 SQL(ORA-00984),因此在此重写: 11g 下 NEXTVAL 默认值不生成 DEFAULT 子句,改由 CreateTable 流程在建表后 创建 BEFORE INSERT 触发器实现等价语义(见 createSequenceDefaultTrigger)。
func (Migrator) RenameTable ¶
func (Migrator) TryRemoveOnUpdate ¶
type Namer ¶
func (Namer) CheckerName ¶
func (Namer) ColumnName ¶
func (Namer) JoinTableName ¶
func (Namer) RelationshipFKName ¶
func (n Namer) RelationshipFKName(relationship schema.Relationship) (name string)
func (Namer) SchemaName ¶
func (Namer) UniqueName ¶
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package driver_adapter 提供 Oracle 驱动抽象层 支持 go-ora 和 godror 两种底层驱动的切换
|
Package driver_adapter 提供 Oracle 驱动抽象层 支持 go-ora 和 godror 两种底层驱动的切换 |
Click to show internal directories.
Click to hide internal directories.