2012-06-19 21 views
5

Tôi muốn kết nối với Oracle (11g) bằng cách sử dụng unixODBC. Tôi muốn chuỗi kết nối CHỈ để chỉ định tất cả thông tin cơ sở dữ liệu/nguồn dữ liệu và các tệp ODBC INI (/etc/odbc.ini/etc/odbcinst.ini) để chỉ chứa thông tin trình điều khiển chung giống như nơi tìm '.so' v.v. nghĩa là tôi muốn chúng tĩnh. Tôi muốn làm điều này để tôi có thể lấy chuỗi kết nối từ người dùng bên ngoài và kết nối với nguồn dữ liệu mà không phải sửa đổi bất kỳ tệp INI nào hoặc bất kỳ cấu hình nào khác trên đĩa.unixODBC/Oracle: Làm cách nào để chỉ định tất cả thông tin nguồn dữ liệu trong chuỗi kết nối CHỈ và không có trong tệp odbc * .ini

Tất cả các ví dụ tôi thấy làm cho tôi xác định các thông tin máy chủ trong /etc/odbc.ini như thế này:

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

Bây giờ, tôi đã tìm ra cách để có được UserID và mật khẩu ra vào chuỗi kết nối bằng cách thêm "UID=my_user;PWD=my_pass" để kết nối và tôi đã xóa chúng khỏi odbc.ini. Niềm vui của tôi nhanh chóng trôi qua khi tôi không thể tìm cách để có được ServerName trong số odbc.ini và vào chuỗi kết nối. Vì vậy, làm thế nào để tôi làm điều này? Và có cách nào để loại bỏ DSN trong odbc.ini hoàn toàn không và chỉ có Driver từ odbcinst.ini trong chuỗi kết nối, như chúng ta đang làm cho MySQL?

Edit: Cố gắng bất kỳ chuỗi kết nối từ www.connectionstrings.com rằng dường như không đòi hỏi TNS hoặc một DSN, incliuding EZCONNECT biến, tất cả cho tôi:

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

http://www.connectionstrings.com/oracle#p17 –

+0

@Brian - nope, tôi không thể nhận được bất kỳ của những người làm việc. Tôi luôn nhận được: '[HY000] [unixODBC] [Oracle] [ODBC] [Ora] ORA-12162: TNS: tên dịch vụ mạng được chỉ định không đúng' –

+0

Không sử dụng biến thể tên tns và/hoặc đảm bảo bạn có nhập vào tệp tên tns của bạn. –

Trả lời

5

chỉ cần sử dụng DBQ = Địa chỉ: 1521/orcl, và bạn sẽ nhận được những gì bạn muốn

+1

Điều này thật kỳ diệu! – Alok

Các vấn đề liên quan