6 Stimmen

UnixODBC/Oracle: Wie kann ich alle Datenquelleninformationen NUR im Verbindungszeichenfolge angeben und nicht in den odbc*.ini-Dateien?

Ich möchte mich mit Oracle (11g) unter Verwendung von unixODBC verbinden. Im Verbindungssatz möchte ich NUR alle Datenbank-/Datenquellinformationen angeben, und die ODBC INI-Dateien (/etc/odbc.ini und /etc/odbcinst.ini) sollen nur allgemeine Treiberinformationen wie z.B. die Position der '.so'-Datei enthalten. D.h. ich möchte, dass sie statisch sind. Ich möchte dies tun, damit ich den Verbindungssatz extern vom Benutzer erhalten und mich mit der Datenquelle verbinden kann, ohne irgendwelche INI-Dateien oder andere Festplattenkonfigurationen ändern zu müssen.

All die Beispiele, die ich gesehen habe, zwingen mich, die Serverinformationen in /etc/odbc.ini wie folgt zu definieren:

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

Nun habe ich herausgefunden, wie ich den Benutzerdienstenamen und das Passwort in den Verbindungssatz einbeziehen kann, indem ich "UID=my_user;PWD=my_pass" zum Verbindungssatz hinzufüge, und ich habe sie aus odbc.ini entfernt. Meine Freude verging schnell, als ich keinen Weg fand, ServerName aus odbc.ini und auch in den Verbindungssatz einzufügen. Also wie mache ich das? Und gibt es eine Möglichkeit, den DSN in odbc.ini ganz loszuwerden und nur den Driver aus odbcinst.ini im Verbindungssatz zu haben, so wie wir es für MySQL tun?

Bearbeiten: Beim Versuch von Verbindungssätzen von www.connectionstrings.com, die keine TNS oder einen DSN zu benötigen scheinen, inklusive EZCONNECT Varianten, erhalte ich immer:

[HY000] [unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net-Dienstname ist falsch angegeben
    (12162) (SQLDriverConnectW)

7voto

jack Punkte 71

Verwenden Sie einfach Dbq=Adresse:1521/orcl, und Sie erhalten, was Sie wollen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X