Oracle
 sql >> база данни >  >> RDS >> Oracle

Excel VBA се свързва с отдалечена Oracle DB с InstantClient

Приключих с редактиране/използване на тази функция (която не (?) използва драйвер/доставчик:InstantClient но все пак използва файловете):

Function ORAQUERY(strHost As String, strDatabase As String, strSQL As String, strUser As String, strPassword As String)
  Dim strConOracle, oConOracle, oRsOracle
  Dim StrResult As String
  StrResult = ""
  strConOracle = "Driver={Microsoft ODBC for Oracle}; " & _
         "CONNECTSTRING=(DESCRIPTION=" & _
         "(ADDRESS=(PROTOCOL=TCP)" & _
         "(HOST=" & strHost & ")(PORT=1521))" & _
         "(CONNECT_DATA=(SERVICE_NAME=" & strDatabase & "))); uid=" & strUser & " ;pwd=" & strPassword & ";"
  Set oConOracle = CreateObject("ADODB.Connection")
  Set oRsOracle = CreateObject("ADODB.Recordset")
  oConOracle.Open strConOracle
  Set oRsOracle = oConOracle.Execute(strSQL)
  MsgBox (oRsOracle.Fields(0).Value)
  varResult = oRsOracle.GetRows
  Do While Not oRsOracle.EOF
      If StrResult <> "" Then
        StrResult = StrResult & Chr(10) & oRsOracle.Fields(0).Value
      Else
        StrResult = oRsOracle.Fields(0).Value
      End If
    oRsOracle.MoveNext
  Loop
  oConOracle.Close
  Set oRsOracle = Nothing
  Set oConOracle = Nothing
  ORAQUERY = StrResult
End Function



Правилен пълен низ за връзка:

Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=strHost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=strDatabase))); uid=strUser; pwd=strPassword;

Доставчик или драйвер:
{Microsoft ODBC за Oracle}

Необходимо е да се настрои променливата на средата PATH да сочи към instantclient.
Не е използвана нито една от другите променливи на средата, напр. ORACLE_HOME, TNS_ADMIN и др.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-30926 - Състояние на сливане

  2. Низ за заявка на Oracle, включително знак за тире

  3. 50 нюанса на изпит за сертифициране на база данни на Oracle

  4. regexp_replace:вмъкнете интервал в низ, ако вече не присъства

  5. Изявление за избор на заявка на PHP Oracle вътре в цикъл бавно