unixODBC / Oracle:如何仅在连接字符串中指定所有数据源信息,而不在odbc * .ini文件中指定

时间:2012-06-19 09:37:45

标签: oracle unixodbc

我想使用unixODBC连接到Oracle(11g)。我希望连接字符串仅指定所有数据库/数据源信息,并且ODBC INI文件(/etc/odbc.ini/etc/odbcinst.ini)仅包含通用驱动程序信息,例如在哪里可以找到'.so'等等,即我希望它们是静态的。我想这样做,以便我可以从外部获取用户的连接字符串,并连接到数据源,而无需修改任何INI文件或任何其他磁盘配置。

我看到的所有示例都让我在/etc/odbc.ini中定义服务器信息,如下所示:

[myDSNname]
Driver = OracleODBC-11g
DSN = OracleODBC-11g
ServerName = //xxx.xxx.xxx.xxx:1521/SID_NAME
UserID = my_user
Password = my_pass

现在,我想出了如何通过将"UID=my_user;PWD=my_pass"添加到连接字符串中来将UserID和密码输出到连接字符串中,并将其从odbc.ini中删除。当我无法找到从ServerName中获取odbc.ini并进入连接字符串的方式时,我的快乐很快就过去了。那我该怎么做?有没有办法完全摆脱odbc.ini中的DSN,并且在连接字符串中只有Driver来自odbcinst.ini,就像我们为MySQL做的那样?

修改 尝试www.connectionstrings.com中似乎不需要TNS或DSN的任何连接字符串,包含EZCONNECT变体,都会给我:

[HY000] [unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified
    (12162) (SQLDriverConnectW)

1 个答案:

答案 0 :(得分:6)

只需使用Dbq =地址:1521 / orcl,就可以得到你想要的东西