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

ORA028513DG4ODBCエラーの調査

    OracleをSQLServerに接続することは、Easysoft SQLServerODBCドライバーの最も一般的な使用例の1つです。この組み合わせをサポートするには、ドライバーのセットアップを支援するだけではありません。また、OracleHeterogeneousServicesがドライバーをロードすることを妨げるOracle構成の問題の解決を支援することも意味します。

    最近、SQLServerODBCドライバーのお客様から次のエラーが報告されました。

    ORA-28513: internal error in heterogeneous remote agent

    顧客は、DG4ODBCトレースログを提供することができました。これにより、2つのことがわかりました。

    1. Oracle構成ファイル(.ora)は正しく設定されています。これらのファイルにエラー(ブラケットの欠落や無関係など)が含まれている場合、DG4ODBCトレースログは生成されません。
    2. DG4ODBCはunixODBCドライバーマネージャーをロードしようとさえしていませんでした。

    Oracle DG4ODBCログが問題を識別せず(通常、アプリケーションによって報告されたORA-NNNNNエラーよりも多くの情報が常に含まれます)、ODBCログがまだ可能でないこのような状況では、strace<に到達します。 / code> またはtruss 。例:

    1. Oracleユーザーとして2つのシェルセッションを開始します。
    2. シェル1で、Oracleリスナーを停止します。
    3. 次のコマンドでリスナーを起動します:
      strace -f -o /tmp/easysoft.log -s 512 lsnrctl start

      —または—

      truss -wall -rall -o /tmp/easysoft.log lsnrctl start
    4. シェル2で、SQL * PLusを起動し、DG4ODBC /SQLServerデータベースリンクに対してSQLステートメントを実行します。
    5. シェル2で、Oracleリスナーを停止します。

    ただし、システムライブラリトレースツール( truss お客様の場合)それでも問題の原因は明らかになりませんでした。

    結局、顧客が ORA_NLS10を設定していたことが判明しました。 環境変数であり、これを行うことの副作用は、DG4ODBCが機能しなくなることでした。このマシンでは変数を設定する必要がなかったため、設定を解除してプロファイルファイルから削除することが、お客様の問題の解決策でした。


    1. FOREIGN KEY制約によって参照されているため、オブジェクトを削除できませんでした-SQL Server/TSQLチュートリアルパート74

    2. Linux上のSQLServer2016

    3. PostgreSQLでデータエントリが自動的に削除されるまでの有効期限を設定する方法はありますか?

    4. MySQL4.0で作成されたタイムスタンプ列と最終更新されたタイムスタンプ列の両方を持つ