sql >> データベース >  >> RDS >> Oracle

ExcelVBAはInstantClientを使用してリモートOracleDBに接続します

    この関数を編集/使用することになりました(ドライバー/プロバイダーを使用しません(?): 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 for Oracle}

    PATH環境変数をinstantclientを指すように設定する必要がありました。
    他の環境変数を使用しませんでした。 ORACLE_HOME、TNS_ADMINなど。




    1. Postgres9で現在の日付を更新するためのトリガー

    2. mysql_fetch_assoc():指定された引数はphpの有効なMySQL結果リソースではありません

    3. DBにバイナリとして格納されているJavaUUIDを取得する方法

    4. テーブルの幅が広すぎてMarkdownで生成されたPDFに収まらない