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

WindowsからSQLServerへのOracleの接続

    Windows上のOracleアプリケーションをSQLServerに接続します。

    OracleのDatabaseGatewayfor ODBC(DG4ODBC)とSQL Server ODBCドライバーを使用して、OracleをSQLServerに接続できます。

    DG4ODBCは、Oracle 11 gの一部として提供されます。 以降、追加費用なしで、Oracle 10 gと互換性があります。 以降。

    DG4ODBCは、Heterogeneous Services(Oracleデータベースコンポーネント)と対話して、OracleクライアントアプリケーションがOracle以外のデータベースにアクセスできるようにします。 Oracle以外のデータは透過的に統合されているため、Oracleクライアントアプリケーションは、データが別のベンダーのリモートデータベースに保存されていることを認識しません。

    次の手順は、Windows上のOracleをSQLServerに接続する方法を示しています。 DG4ODBCの詳細については、DG4ODBCforWindowsチュートリアルを参照してください。

    1. Windowsプラットフォーム用のSQLServerODBCドライバーをダウンロードします。 (登録が必要です。)
    2. DG4ODBCがインストールされているWindowsマシンにSQLServerODBCドライバーをインストールしてライセンスを取得します。

      インストール手順については、SQLServerODBCドライバーのドキュメントを参照してください。

    3. DG4ODBCマシンのODBCデータソースアドミニストレーターで、SQLServerインスタンスに接続するシステムDSNを構成します。

      データソースの構成手順については、SQLServerODBCドライバーのドキュメントを参照してください。

      64ビットWindows DG4ODBCのバージョンが32ビットか64ビットかを確認する必要があります。これを行うには、Windowsタスクマネージャーを起動し、[プロセス]タブを選択します。コマンドプロンプトウィンドウで、dg4odbc--helpと入力します。 Windowsタスクマネージャーで、DG4ODBCプロセスを探します。イメージ名が「dg4odbc.exe*32」の場合、DG4ODBCは32ビットです。イメージ名が「dg4odbc.exe」の場合、DG4ODBCは64ビットです。 Windowsタスクマネージャを使用してDG4ODBCのアーキテクチャを確認したら、コマンドプロンプトウィンドウでCTRL+Cを押します。

      64ビットバージョンのDG4ODBCを使用している場合は、64ビットバージョンのODBCAdministratorを実行する必要があります。これを行うには、コントロールパネルで[管理ツール]を開き、[データソース(ODBC)]を開きます。 (Windows Server 2003以前では、ODBCAdministratorを起動するコントロールパネルアプレットにはデータソースというラベルが付いています。Windows8以降では、コントロールパネルアプレットにはODBCデータソース(64ビット)というラベルが付いています。)

      32ビットバージョンのDG4ODBCを使用している場合は、32ビットバージョンのODBCAdministratorを実行する必要があります。これを行うには、[Windowsの実行]ダイアログボックスで、次のように入力します。

      %windir%\syswow64\odbcad32.exe
    4. DG4ODBC初期化ファイルを作成します。これを行うには、%ORACLE_HOME%\ hs\adminディレクトリに移動します。ファイルinitdg4odbc.oraのコピーを作成します。新しいファイルにinitmssql.oraという名前を付けます 。

      これらの手順では、%ORACLE_HOME%をOracleHOMEディレクトリの場所に置き換えます。例:C:\ oraclexe \ app \ oracle \ product \ 11.2.0\server。

    5. 次のパラメータと値がinitファイルに存在することを確認してください:
      HS_FDS_CONNECT_INFO = my_sqlserver_odbc_dsn;
    6. DG4ODBCのSID_NAMEを作成するエントリを%ORACLE_HOME%\ network \ admin\listener.oraに追加します。例:
      SID_LIST_LISTENER =
       (SID_LIST =
         (SID_DESC=
           (SID_NAME=mssql)
           (ORACLE_HOME=%ORACLE_HOME%)
           (PROGRAM=dg4odbc)
         )
       )
    7. 前の手順で作成したSID_NAMEを指定するDG4ODBCエントリを%ORACLE_HOME%\ network \ admin\tnsnames.oraに追加します。例:
      MSSQL =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
          (CONNECT_DATA =
            (SID = mssql)
          )
          (HS = OK)
        )

      oracle_hostを置き換えます Oracleマシンのホスト名を使用します。

    8. Oracleリスナーを起動(または再起動)します:
      cd %ORACLE_HOME%\bin
      lsnrctl stop
      lsnrctl start
    9. SQL*PlusでOracleデータベースに接続します。
    10. SQL * Plusで、ターゲットSQLServerインスタンスのデータベースリンクを作成します。例:
      CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
      "my_sqlserver_user" IDENTIFIED by "my_sqlserver_password" USING 'mssql';

      my_sqlserver_userを置き換えます およびmy_sqlserver_password ターゲットSQLServerインスタンスの有効なユーザー名とパスワードを使用します。

    メモ

    • OracleからSQLServerへの接続に問題がある場合は、DG4ODBCトレースを有効にして、%ORACLE_HOME%\ hs\traceディレクトリに書き込まれているトレースファイルを確認してください。 DG4ODBCトレースを有効にするには、HS_FDS_TRACE_LEVEL =DEBUGという行をinitmssql.oraに追加してから、Oracleリスナーを起動/再起動します。トレースディレクトリが存在しない場合は、作成してください。
    • ODBC Driver Managerトレースを有効にしても、トレースファイルを取得しない、または空のトレースファイルを取得しない場合は、トレースファイルの場所をWindowsTEMPディレクトリに変更します。例:C:\ Windows \ Temp\SQL.log。

    データへのアクセスの問題

    OracleからSQLServerへのデータの読み取り/書き込みで問題が発生した場合は、次の手順を実行してください。

    • 問題が使用しているアプリケーション(SQL Developer、Toadなど)にないことを確認してください。 OracleマシンでSQLPlusを使用して問題をテストします。たとえば、問題がToadでのみ発生し、SQLPlusでは発生しない場合は、Toadをサポートしている人に問題を報告してください。
    • 問題を問題の列/テーブルに限定してみてください。たとえば、select * from table@linkを実行しているとします。 問題の原因となっている列が1つしかない場合は、select column from table@linkを実行してみてください それで同じエラーが発生するかどうかを確認します。これは、問題の診断に役立ちます。
    • DG4ODBCの問題についてEasysoftサポートに連絡する必要がある場合:
      1. $ ORACLE_HOME / hs / admin / initmssql.oraファイル内でDg4ODBCトレースをオンにします:
        HS_FDS_TRACE_LEVEL = Debug
      2. Oracleリスナーを停止して開始します。
      3. SQLPlusで問題を再現します。 $ ORACLE_HOME / hs / logフォルダにOracleトレースファイルがない場合は、リスナーが再起動されていないか、Oracleが正しく構成されていません。
      4. Easysoftサポートチーム([email protected])を送信します:
        • SQLPlusへのログイン、実行中のクエリ、および表示されたエラーを示す出力。
        • Oracleinitmssqlログファイルのコピー。 1 MBを超える場合は、このファイルを圧縮/圧縮してください。
        • initmssql.oraファイルのコピー。
        • /usr/local/easysoftからの_install.infoで終わるファイルのコピー。
        • すべての項目が揃ったら、Easysoftサポートチームは、これがOracleの構成の問題/ Oracleのバグであるか、Easysoftの構成/バグであるか、または単に詳細情報が必要かどうかをすばやく解決できるはずです。

    1. OracleCloudPlatform上のOracleDatabase12cでのOracleJDeveloper12cの使用、パート3

    2. SQLServer待機イベント-2

    3. PostgreSQLは部分インデックスを使用しません

    4. バイナリ文字列をCLOB列に格納できますか