package main
import (
"database/sql"
"log"
_ "oci8"
"os"
)
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", "xxx/xxx@eidc")
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('中文')")
//db.Exec("insert into sdata values('1234567890ABCabc!@#$%^&*()_+')")
rows, err = db.Query("select * from user")
if err != nil {
log.Fatal(err)
}
for rows.Next() {
var id string
var name string
var sex string
rows.Scan(&id , &name , &sex)
log.Printf("id =%s,name=%s,sex =%s,len=%d", id, name, sex, len(name))
}
rows.Close()
}