도전 과제:
많은 프로그래밍 작업에는 행 추출이 필요합니다. 데이터베이스 테이블의 데이터를 구조화된 형식으로 변환합니다. Go에서 데이터베이스/sql 패키지는 테이블 행을 반복하기 위한 Rows 인스턴스를 제공합니다. 그러나 행의 Scan 메서드는 알려진 유형의 대상 변수에 대한 포인터를 예상하므로 열의 수와 유형을 미리 알 수 없는 경우 어려울 수 있습니다.
해결책:
Rows 인스턴스의 열을 []문자열로 읽으려면 다음을 사용할 수 있습니다. 접근 방식:
예:
package main import ( "fmt" "io" "database/sql" ) func dumpTable(rows *sql.Rows, out io.Writer) error { colNames, err := rows.Columns() if err != nil { return err } writer := csv.NewWriter(out) writer.Comma = '\t' readCols := make([]interface{}, len(colNames)) writeCols := make([]string, len(colNames)) for i, _ := range writeCols { readCols[i] = &writeCols[i] } for rows.Next() { err := rows.Scan(readCols...) if err != nil { return err } writer.Write(writeCols) } if err = rows.Err(); err != nil { return err } writer.Flush() return nil }
이 코드를 사용하면 Rows 인스턴스에서 열을 읽고 추가 처리를 위해 []문자열로 변환할 수 있습니다. .
위 내용은 Go SQL 행 인스턴스의 열 값을 []문자열로 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!