问题答案

想通过golang调用本地的sqlplus来执行一个存储过程.

如果调用本地程序以及如何给sqlplus传递用户名和密码之类的参数?谢谢 

标签: go
答案

os/exec包提供了对本地程序的调用。我自己在程序中也有使用,简单封装如下:

// 执行系统命令并返回结果
func Command(pro string, argv []string, baseDir string) ([]byte, error) {
cmd := exec.Command(pro, argv...)
// 设置命令运行时目录
if baseDir != "" {
cmd.Dir = baseDir
}
res, err := cmd.Output()
if err != nil {
return nil, err
}
return res, nil
}
比如:要执行 /usr/bin/sqlplus cmsuser/user@192.168.2.1/cms

那么调用就是:

res, err := Command("/usr/bin/sqlplus", []string{"cmsuser/user@192.168.2.1/cms"}, "")
在命令行中以空格分割的参数形成slice参数组. 

举一反三