2016-07-29 7 views
0

Wie Verbindungszeichenfolge zu Oracle db aussehen wird, wenn ich solche Parameter haben:Vb conncetion Zeichenfolge zu Oracle DB

HOST = host 
PORT = 1531 
SERVICE_NAME = service_name 
User: USER_ADMIN 
pass: USER_ADMIN 

Jetzt habe ich Verbindungszeichenfolge wie folgt aus:

set oConn = CreateObject("ADODB.Connection") 
oConn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=host/orcl;Persist Security Info=True;User ID=user;Password=password;Unicode=True;Driver={Microsoft ODBC for Oracle};" 
oConn.Open 

Korrigieren Sie mich bitte!

+0

Ihre Frage unklar ist. Haben Sie einen Fehler? Was ist der TNSNAME Ihrer Datenbank und welche Version Ihres Microsoft Oracle-Treibers? Wie auch immer die Antwort ist wahrscheinlich [hier] (https://www.connectionstrings.com/oracle/) –

Antwort

1

Ihre Verbindungszeichenfolge ist falsch, Sie können Provider=OraOLEDB.Oracle und Driver={Microsoft ODBC for Oracle} nicht gleichzeitig verwenden.

Falls Sie die Oracle OLE DB-Provider verwenden versuchen Sie dies:

Set oConn = CreateObject("ADODB.Connection") 
oConn.provider = "OraOLEDB.Oracle" 
DB = host & ":" & port & "/" & SERVICE_NAME 
oConn.Open "Data Source=DB", User, pass 

, die gleichwertig sein sollte:

Set oConn = CreateObject("ADODB.Connection") 
DB = host & ":" & port & "/" & SERVICE_NAME 
oConn.Open "Provider=OraOLEDB.Oracle;Data Source=DB;User Id=" & User & ";Password=" & pass 

aber ich weiß nicht, ob Oracle OLE DB Easy Connect Naming Method unterstützt (EZ), ich habe es nie benutzt. Im Fall nicht unterstützt EZ versuchen diese stattdessen:

DB = "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=" & host & ")(PORT=" & port & "))(CONNECT_DATA=(SERVICE_NAME=" & SERVICE_NAME & ")))" 

Eigentlich sollte eine solche Definition in tnsnames.ora Datei geschrieben werden, zum Beispiel

DB_TNS.your.domain = 
    (DESCRIPTION= 
    (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1531)) 
    (CONNECT_DATA= 
     (SERVICE_NAME=service_name) 
     (SERVER=server) 
     (INSTANCE_NAME=instance_name) 
    ) 
) 

Dann können Sie einfach oConn.Open "Data Source=DB_TNS", User, pass

Im Fall, dass Sie es vorziehen, die ODBC-Treiber zu verwenden (obwohl der ODBC-Treiber von Microsoft ist deprecated) verwenden diese: ADO ConnectionStings

+0

Vielen Dank!) –