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

Function Query

driver/oracle/extractor/log_miner.go:1323–1362  ·  view source on GitHub ↗
(db *gosql.DB, querySQL string, args ...interface{})

Source from the content-addressed store, hash-verified

1321}
1322
1323func Query(db *gosql.DB, querySQL string, args ...interface{}) ([]map[string]string, error) {
1324 var (
1325 cols []string
1326 res []map[string]string
1327 )
1328 rows, err := db.Query(querySQL, args...)
1329 if err != nil {
1330 return nil, fmt.Errorf("[%v] error on general query SQL [%v] failed", err.Error(), querySQL)
1331 }
1332 defer rows.Close()
1333
1334 //不确定字段通用查询,自动获取字段名称
1335 cols, err = rows.Columns()
1336 if err != nil {
1337 return nil, fmt.Errorf("[%v] error on general query rows.Columns failed", err.Error())
1338 }
1339
1340 values := make([][]byte, len(cols))
1341 scans := make([]interface{}, len(cols))
1342 for i := range values {
1343 scans[i] = &values[i]
1344 }
1345 for rows.Next() {
1346 err = rows.Scan(scans...)
1347 if err != nil {
1348 return nil, fmt.Errorf("[%v] error on general query rows.Scan failed", err.Error())
1349 }
1350 row := make(map[string]string)
1351 for k, v := range values {
1352 key := cols[k]
1353 if v == nil {
1354 row[key] = ""
1355 } else {
1356 row[key] = string(v)
1357 }
1358 }
1359 res = append(res, row)
1360 }
1361 return res, nil
1362}
1363
1364// 替换字符串引号字符
1365func ReplaceQuotesString(s string) string {

Callers

nothing calls this directly

Calls 2

ScanMethod · 0.80
CloseMethod · 0.45

Tested by

no test coverage detected