I have been looking around for the answer to the question above with no luck. Excuse me if it is a duplicate. So basically I am trying to execute a sql script directly from file but I keep on getting the " Incorrect syntax near ''. " error
func AnotherDatabase() (sql.Result, error) {
rc, err := os.Open("./myscript.sql")
if err != nil {
return nil,err
}
buf := new(bytes.Buffer)
buf.ReadFrom(rc)
contents := buf.String()
db, err := sql.Open("mssql", "mydatabase")
if err != nil {
return nil,err
}
defer db.Close()
res, err := db.Exec(contents)
if err != nil {
return nil,err
}
return res,nil
}
I have realized the illegal character causing issues was probably an extended ASCII character so I used the below method to strip off unnecessary characters from the file contents :
func stripCtlAndExtFromBytes(str string) string {
b := make([]byte, len(str))
var bl int
for i := 0; i < len(str); i++ {
c := str[i]
if c >= 32 && c < 127 {
b[bl] = c
bl++
}
}
return string(b[:bl])
}
as stated here https://rosettacode.org/wiki/Strip_control_codes_and_extended_characters_from_a_string#Go