Closed nenadnoveljic closed 6 months ago
Test case:
package main import ( "database/sql" "fmt" "log" go_ora "github.com/sijms/go-ora/v2" ) const HOST = "localhost" const PORT = 1521 const SERVICE_NAME = "XE" const USER = "user" const PASSWORD = "password" func main() { connStr := go_ora.BuildUrl(HOST, PORT, SERVICE_NAME, USER, PASSWORD, map[string]string{}) db, err := sql.Open("oracle", connStr) if err != nil { log.Fatalf("failed to connect %s", err) } err = db.Ping() if err != nil { log.Fatalf("failed to ping %s", err) } largeUint64 := uint64(18446744073709551615) var result uint64 query := fmt.Sprintf("SELECT %d from DUAL", largeUint64) row := db.QueryRow(query) err = row.Scan(&result) if err != nil { log.Fatalf("failed to scan result %s", err) } if result != largeUint64 { fmt.Printf("Wrong result: %d \n", result) } else { fmt.Printf("OK \n") } }
Output:
Wrong result: 9223372036854775807
The test case works well with godror.
godror
fixed in v2.8.7
Test case:
Output:
The test case works well with
godror
.