如何使用golang连接到TimesTen数据库?

时间:2019-04-30 01:06:31

标签: go timesten

我正在尝试使用golang连接TimesTen数据库,但是找不到可用的golang TimesTen驱动程序。

有人有使用golang访问TimesTen的经验吗?

因为TimesTen支持OCI api。因此,我尝试在https://github.com/go-goracle/goracle使用名为goracle的go程序包,但失败了。

这是我的TimesTen的sys.odbc.ini和sys.tt:

  

[root @ centos-7〜]#更多/var/TimesTen/sys.odbc.ini

     

[ODBC数据源] TT_1122 = TimesTen 11.2.2驱动程序   sampledb_1122 = TimesTen 11.2.2驱动程序sampledbCS_1122 = TimesTen 11.2.2   客户端驱动程序

     

[TT_1122]驱动程序= / opt / TimesTen / tt1122 / lib / libtten.so   DataStore = / var / TimesTen / tt1122 / TT_1122 DatabaseCharacterSet = US7ASCII

     

[sampledb_1122]驱动程序= / opt / TimesTen / tt1122 / lib / libtten.so   DataStore = / var / TimesTen / tt1122 / DemoDataStore / sampledb_1122 PermSize = 40   TempSize = 32 PLSQL = 1 DatabaseCharacterSet = US7ASCII

     

[sampledbCS_1122] TTC_SERVER = ttLocalHost_tt1122   TTC_SERVER_DSN = sampledb_1122   驱动程序= / opt / TimesTen / tt1122 / lib / libttclient.so

-

  

[root @ centos-7 TimesTen]#更多sys.ttconnect.ini

     

[ttLocalHost_tt1122]描述= TimesTen服务器   Network_Address = ttLocalHost TCP_PORT = 53397

db, err := sql.Open("goracle","root/XXXXXXX@localhost:53397/sampledbCS_1122:timesten_client") // Trying to use this connect string for TimesTen, I am not sure if it is correct.

在运行测试应用程序时,它报告如下错误:

  

[root @ centos-7 ttrest]#./ttrest   运行查询用户名=“ root”时出错   SID =“ localhost:53397 / sampledbCS_1122:timesten_client” minSessions = 1   maxSessions = 1000 poolIncrement = 1 extAuth = 0:ORA-29158:无法打开   库。

2 个答案:

答案 0 :(得分:0)

从Oracle TimesTen内存数据库访问Go的最好方法是使用基于ODPI-C的go-goracle SQL驱动程序。

您应该使用tnsnames.ora指定将用于连接Go的TimesTen服务名称。无论使用TimesTen还是Oracle RDBMS,使用go-goracle的方式都是相同的。

答案 1 :(得分:-1)

您可以运行bin / ttenv.sh来设置环境变量,但是我可以从window连接,但是我还没有从linux连接