Skip to content

Instantly share code, notes, and snippets.

@wendal
Created October 9, 2012 01:52
Show Gist options
  • Save wendal/3856117 to your computer and use it in GitHub Desktop.
Save wendal/3856117 to your computer and use it in GitHub Desktop.
测试Golang的Oracle驱动的查询性能
package main
import (
"database/sql"
_ "github.com/mattn/go-oci8"
"os"
"log"
"fmt"
)
func main() {
// 为log添加短文件名,方便查看行数
log.SetFlags(log.Lshortfile | log.LstdFlags)
log.Println("Oracle Driver example")
os.Setenv("NLS_LANG", "")
// 用户名/密码@实例名 跟sqlplus的conn命令类似
db, err := sql.Open("oci8", "system/123456@XE")
if err != nil {
log.Fatal(err)
}
rows, err := db.Query("select 3.14, 'foo' from dual")
if err != nil {
log.Fatal(err)
}
defer db.Close()
for rows.Next() {
var f1 float64
var f2 string
rows.Scan(&f1, &f2)
log.Println(f1, f2) // 3.14 foo
}
rows.Close()
// 先删表,再建表
db.Exec("drop table sdata")
db.Exec("create table sdata(name varchar2(256))")
//db.Exec("insert into sdata values('中文')")
for i := 0; i < 5000; i++ {
db.Exec(fmt.Sprintf("insert into sdata values('%d')", i))
}
log.Println("Start query...")
rows, err = db.Query("select * from sdata")
if err != nil {
log.Fatal(err)
}
for rows.Next() {
var name string
rows.Scan(&name)
//log.Printf("Name = %s, len=%d", name, len(name))
}
log.Println("End query...")
rows.Close()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment