2011-02-02 21 views
0

残念ながら私は巨大な(11902文字)アドホックSQL文を作成している古いVB6アプリケーションで作業しています。このアプリケーションは、私のDBConnectionのGetRecordSet()メソッドに渡されます。アプリはOraOLEDB.Oracleプロバイダを使用しています。 )(欠落している右括弧なぜOraOLEDB.Oracle GetRecordSet()は "ORA-00907:右括弧がありません"というエラーをスローしますか?

は今、私はGetRecordSetに渡された文字列の内容をつかんでいます

ORA-00907:GetRecordSet()メソッドが実行されると、しかし、私は次のエラーを取得しますそれを徹底的に調べて、欠けている括約はない。さらに、Oracle SQL DeveloperおよびSQL * Plusでselect文を実行することができます。だから私は文字列が構文的に正しいと確信しています。

プロバイダで何か怪しいことが起こっていると思われ始めました。おそらく、文字列が長すぎてどこかで切り捨てられていますか?

誰も私を助けることができますか?

おかげで、 スティーブ

答えて

1

は、Oracleトレースファイルをチェックしてください。 セッションをトレースモードで最初に設定します。 セッションセットを変更するsql_trace = true;

同じセッションでクエリを実行します。トレースファイルは、user_dump_destが指すディレクトリ内のデータベースサーバ上にあります。

クエリが完全にトレースファイル内にある場合、クエリはデータベースによって完全に受信されています。

+0

ご回答いただきありがとうございます。私はOracleについて言えば完全な初心者です。正確に、私は「トレースモードでセッションを設定する」に行きますか?これはSQL * Plusで行うことを前提としています。しかし、SQL * Plusでこれを行うと、それは私のVB6アプリケーションで実行されているセッションとは異なるセッションになりますか?クエリはSQL * Plusでうまく動作しているようです。この問題は、アプリケーション内でGetRecordSet()関数を使用してクエリを実行しようとすると発生するようです。 –

+0

も、絶対Oracleの初心者です。どこで "user_dump_dest"設定を見つけることができますか?もう一度お返事ありがとうございます。 –

+0

v $ parameterの値を選択してください。name = 'user_dump_dest';ユーザーは、v $ parameterからname、valueを選択して、すべてのインスタンス・パラメーターをリストすることもできます。 –

関連する問題