Oracle と Access で ORA-01013


サーバ上の Oracle 8.1.6 のデータベースを、クライアント側にある Access2000 で ODBC 経由にて「テーブルのリンク」を張り、クエリーを作成して Excel フォーマットでエクスポートして資料を作っていました。

ふだんなら、40〜50秒ほどかかってエクスポートできていたのが、ある時、突然、エクスポートしようとすると、「ODBC--呼び出しに失敗しました。[Oracle][ODBC][Ora]ORA-01013:ユーザーによってカレント操作の取消しが要求されました。(#1013)」とメッセージが連発するようになりました。今までも、時々、出ていたが再度、実行するとうまくいっていたので、あまり気にしなかったが、今回は。。。。。

「取り消しなんかしとらんぞ」と思いつつ、ほかのクエリーも試してみましたが、同様のエラーが出る。「これはデータ件数が先月より増えたせいだな」と思ったが、今更、どうしようもない。誰かに聞くにも、今はAM2:00。資料は今日の午前中までに必要。

考えられるとすると、データ件数が増えたことにより、タイムアウトが発生しているらしい。エラーメッセージが出るのは決まって60秒後だからだ。

内容からすると、ODBC の設定らしいので、ODBC の設定から調べてみたがそれらしいところはなかった。
ODBC は Jet を経由しているから、 Jet の設定かもと思ったが、設定するところが見つからず。
Web で ODBC の設定、 Jet の設定、Oracle 、 Net8 の設定を調べて見たが、どうもわからない。

そこで、 Microsoft 社の「サポート技術情報検索」で調べてみた。いろいろ、調べた結果「ODBC接続タイムアウトの設定をレジストリで変更する」と言うのを見つけた。障害の内容として異なるが、何とかいけそうな気がしたので設定を変更してみたが、だめだった。

いろいろ悩んだあげく、 Access の Help を検索してみた。すると、意外なことに Help に載っていた。(今まで、 Help で解決した試しがないので。。。)

解決方法は下記の内容です。

  1. クエリーをデザインビューで開く。
  2. デザインビュー中の何もないところで、右クリック。
  3. 「プロパティ」を開くと、下記のような画面が出る。
  4.  
    ここの中に、「ODBCタイムアウト」とと言う設定があるので、好きな値に変更する。初期値は「60」秒。「0」秒にすると、タイムアウトしないらしい。
  5. とりあえず、私は「600」秒に変更した。
  6. 「×」でプロパティを閉じるだけ。

わかってしまえば、何の事はなかった。

もっと早く、Help を見ておけばよかった。Microsoft に申し訳ない。灯台もと暗しとはこのことか。。。



注意 : これは、私個人の覚え書きであり、何も保証するもではありません。自己責任でお読み下さい。
Create:2002/01/04   Last modified:2009/10/02
Copyright (c) 2002-2013 Yoshi All Rights Reserved