none
Oracleテーブルの削除処理でエラー RRS feed

  • 質問

  • SQL Server 2000でOracle9iに対し、リンクサーバー設定をしています。
    Oracleのあるテーブルに対し、削除を実行すると次のエラーが発生します。

    OLE DB プロバイダ  'MSDAORA' はエラーをレポートしました。
    プロバイダの実行メモリが不足しています。
    [SQLSTATE 42000] (エラー 7399)  
    [SQLSTATE 01000] (エラー 7312)  OLE DB エラー トレース
    [OLE/DB Provider 'MSDAORA' IRowset::GetNextRows returned 0x8007000e: 
    プロバイダの実行メモリが不足しています。]。
    [SQLSTATE 01000] (エラー 7300).  ステップは失敗しました。

    他のテーブルに対する削除処理は問題ありません。
    テーブルのデータ件数は他のテーブルと比べて非常に多いです。
    エラーを回避する方法を教えて下さい。

    宜しくお願いします。

    2010年2月15日 10:46

回答

  • 自己解決しました。 (リンクサーバ接続した場合、ORACLE側テーブルのインデックスを利用した検索ができないようで) ORACLE側テーブルを全件読み込むためにSQLServer側でメモリエラーとなっていたようです。 OPENQUERYを利用することで、エラーを回避できましたのでクローズとさせて頂きます。 nagino様、ご丁寧に誠にありがとうございました。
    2010年2月18日 7:39

すべての返信

  • こんにちは、nagino です。

    Oracle 側で PGA メモリーが不足していませんか?
    V$SYSSTAT ビューの session pga memory max あたりで確認してみてください。


    MCITP(Database Developer/Database Administrator)
    2010年2月15日 12:01
  • 自己解決しました。 (リンクサーバ接続した場合、ORACLE側テーブルのインデックスを利用した検索ができないようで) ORACLE側テーブルを全件読み込むためにSQLServer側でメモリエラーとなっていたようです。 OPENQUERYを利用することで、エラーを回避できましたのでクローズとさせて頂きます。 nagino様、ご丁寧に誠にありがとうございました。
    2010年2月18日 7:39