MCPcopy Create free account
hub / github.com/actiontech/dtle / listOracleSchema

Function listOracleSchema

api/handler/v2/database.go:119–167  ·  view source on GitHub ↗
(logger hclog.Logger, reqParam *models.ListDatabaseSchemasReqV2)

Source from the content-addressed store, hash-verified

117}
118
119func listOracleSchema(logger hclog.Logger, reqParam *models.ListDatabaseSchemasReqV2) ([]*models.SchemaItem, error) {
120 if reqParam.IsPasswordEncrypted && reqParam.Password != "" {
121 realPwd, err := handler.DecryptPassword(reqParam.Password, g.RsaPrivateKey)
122 if nil != err {
123 return nil, err
124 }
125 reqParam.Password = realPwd
126 }
127 oracleDb, err := config.NewDB(context.TODO(), &config.OracleConfig{
128 User: reqParam.User,
129 Password: reqParam.Password,
130 Host: reqParam.Host,
131 Port: reqParam.Port,
132 ServiceName: reqParam.ServiceName,
133 })
134 if err != nil {
135 return nil, err
136 }
137 defer oracleDb.Close()
138
139 logger.Info("get schemas and tables from oracle")
140
141 schemas, err := oracleDb.GetSchemas()
142 if err != nil {
143 return nil, fmt.Errorf("get oracle schemas err : %v", err)
144 }
145 replicateDoDb := make([]*models.SchemaItem, 0)
146 for _, schema := range schemas {
147 tableNames, err := oracleDb.GetTables(schema)
148 if err != nil {
149 return nil, fmt.Errorf("get oracle schema %v tables failed: %v", schema, err)
150 }
151 tables := []*models.TableItem{}
152 for _, tableName := range tableNames {
153 tb := &models.TableItem{
154 TableName: tableName,
155 }
156 tables = append(tables, tb)
157 }
158
159 schema := &models.SchemaItem{
160 SchemaName: schema,
161 Tables: tables,
162 }
163 replicateDoDb = append(replicateDoDb, schema)
164 }
165 return replicateDoDb, nil
166
167}
168
169// @Id ListDatabaseColumnsV2
170// @Description list columns of database source instance.

Callers 1

ListDatabaseSchemasV2Function · 0.85

Calls 5

DecryptPasswordFunction · 0.92
NewDBFunction · 0.92
GetSchemasMethod · 0.80
GetTablesMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected