2

Oracle 10g (pro*c およびライブラリー) を使用してコンパイルされたマルチスレッド C アプリケーションがあります。このプログラムは、スレッドごとに 1 つのデータベース接続を使用します。11g に移行しており、11g に対するテストでは、グローバル コンテキスト以外のコンテキストを使用するものはすべてSQL-02134: Invalid runtime context、データベースへの接続時に を生成します。グローバル コンテキストを使用すると問題なく動作します。これは 10g から 11g への移行における既知の非互換性ですか、それとも何か間違っていますか? 最終的にはすべてを 11g に対して再コンパイルしますが、実装目的のために、すべてのデータベースが変換されるまで 10g プログラムを実行できれば、はるかに簡単です。

価値があるのは、コードには、私が通常のものであると信じているものが含まれていることです。

EXEC SQL ENABLE THREADS;
EXEC SQL CONTEXT ALLOCATE :thread_ctx
EXEC SQL CONTEXT USE :thread_ctx
4

2 に答える 2

0
SQL-02134: Invalid runtime context 

Cause: The runtime context associated with this statement has not been properly allocated.

Action: Rewrite the application to execute the EXEC SQL CONTEXT ALLOCATE statement before executing any SQL statements.

したがって、SQLステートメントを実行する前にコードにそのステートメントが含まれていると言ったので、SQLを実行する前にコンテキストがクリアされていると思います。

ある種のデバッガーを実行してトレース ファイルを生成し、問題が正確にどこに伝播しているかを確認します。

于 2011-06-20T12:15:56.273 に答える