github.com/wanlay/gorm-dm8@v1.0.5/schema/clob.go (about) 1 package dmSchema 2 3 import ( 4 "database/sql/driver" 5 "errors" 6 "fmt" 7 8 "github.com/wanlay/gorm-dm8/dmr" 9 ) 10 11 type Clob string 12 13 func (clob Clob) Value() (driver.Value, error) { 14 if len(clob) == 0 { 15 return nil, nil 16 } 17 return string(clob), nil 18 } 19 20 func (clob *Clob) Scan(v interface{}) error { 21 switch v.(type) { 22 case *dmr.DmClob: 23 tmp := v.(*dmr.DmClob) 24 le, err := tmp.GetLength() 25 if err != nil { 26 return errors.New(fmt.Sprint("err:", err)) 27 } 28 29 str, err := tmp.ReadString(1, int(le)) 30 *clob = Clob(str) 31 break 32 33 default: 34 *clob = Clob(v.(string)) 35 } 36 return nil 37 }