• ベストアンサー

抽出データの欠落

プログラムもほとんど知らない素人ですが質問させていただきます。^^; oracle9iデータベースで、未抽出の情報があれば、「抽出済みフラグ」を立て、さらにその情報はテキストファイルに出力する処理を開発者に作ってもらいました。 しかし、データの10件に抽出済みフラグが付いたのに、テキストファイルへの出力は8件とか9件しか出力されない といった現象が頻発して困っています。 当初はSQL文のみのプログラム(?)で現象が出たのでVBプログラムで作り直してもらったのですが、同じ現象が出ます。 データ総件数は3万件ぐらいで、抽出される件数は20~100件ぐらいです。 こういったトラブルはoracleデータベースで一般的にあり得るのでしょうか? よろしくお願いします。

  • Oracle
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Oracle に限らず、設計・プログラムがまずいと、そういうことはありうると思います。逆に言うと、設計・プログラムがしっかりしていれば、そういうことにはなりません。

その他の回答 (1)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ 恐らく読取り一貫性の問題ではないでしょうか? 未抽出のレコードを出力するためのSelect 文が実行される前に Commit されているデータのみが抽出の対象になりますので、 データがInsert されてもCommit されていなければ 別トランザクション (抽出処理を行う Select 文) では抽出の対象 になりません。

関連するQ&A

  • 大量のデーターを条件により抽出して計算したり・・・

    こんにちわ。 エクセルで、毎月1万件以上をデーター入力し、条件により抽出したものを計算したり、印刷したり・・。 また、検索したりをしていこうと思っているのですが 将来的に、件数が10万件を越すかもしれません。 こういう場合、システムを作ってもらう事になるのでしょうか? データーベースはオラクルでフォームをエクセルとかで できるのでしょうか? システムとか、よくわかりませんので、 よろしくお願いします。

  • MSDEでデータを抽出する時の処理時間

    Accessのデータベースから、ADOを用いてExcelにデータを抽出する作業をさせているのですが、データベースのレコード件数が多すぎて(現在40万件くらいで、日々2000件くらい増加)、時間がかかって困っています。 ある本に、「MSDEはAccess(Jet)に比べると、より大規模なデータを高速に扱うことが可能になっています。」と書いてあるのですが、これはSQLでの抽出時間が早くなるということで良いのでしょうか? 初心者で、プログラムや専門用語等に詳しくありませんので、できれば簡単な表現で教えていただけたら幸いです。よろしくおねがいします。

  • サーブレット:SQL検索結果に同じキーのデータが入ってくる

    はじめまして。 JAVA初心者です、以下のような現象が出て困っています。 教えていただきたいのですが。。。 【システムの動き】 HTMLフォームからデータを選択し、SQLで選択フラグを立て、 SQLから選択フラグの立ったデータをサーバにテキスト出力します。   [検索]ボタンクリック     ↓(サーブレットA呼出し)   検索結果表示(html)     ↓出力データを選択   [出力]ボタンクリック     ↓(サーブレットB呼出し)     ↓(テキストファイル出力。SQLのSELECT件数だけの行を出力)   出力完了メッセージ表示 【現象】 テキストの出力結果をみると、 全く内容の同じ行が何行かにまたがって存在しています。 SQLにはキーが存在しているので同じ行があるのは 有り得ないのですが。。。 ------------------------------- JAVAプログラムの組み方なのか、サーバのシステム構築なのか、 原因の切り分けが出来なくて困っています。 ちなみに、あるサーバではこの現象が出るのに、他のサーバでは全く 現象が出てきません。 「SingelThreadModel」をプログラムに書いていますが。。。 あまり推奨されていないのですよね?(>_<) 初心者なので、トンチンカンな質問をしているかもしれませんが、 よろしくお願い致します。

  • 「いきなりPDF」データ抽出時のエラーメッセージ

    いきなりPDF>>変換メニュー 【出力ファイル形式を選ぶ】出力形式:テキスト(データ抽出) で実行したときに、「PDFファイルにテキストデータがないため、ファイルの出力ができませんでした」とのエラーメッセージが出て、処理が止まってしまいます。 プレビュー画面には問題なく表示されています。 出力形式をテキスト(文字認識)にすると、出力されます。 テキスト(データ抽出)するためのエラー回避方法があればお教えください。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • 抽出結果を1件ずつ次の抽出条件に使う方法

    Oracleで下記のようなデータ処理を実現する方法を調べています。 (1)特定の条件でデータを抽出する。  select X from TABLE1 where Y="test" (2)(1)で抽出したデータを別の抽出条件の値として1つずつ使用し、  別のsqlにてデータを抽出し、件数を取得する。 select count(*) from TABLE2 where Z = aaa  ※aaaには(1)の結果を順に入れる。 2,3件であれば手作業で(2)を実施すればよいのですが、(1)の結果が数100件 になっているため、(2)をループ処理させたいです。 PL/SQLが必要なのでは?と思いつつ、使ったことがありません。 少し調べてはみましたが、よくわからず、困っています。 特に難しい処理ではないと思ってはいるのですが、期日まで時間がなく、質問 させていただきました。 一時的なデータ確認のためだけなので、専用にプログラムを組むのはしたく 無いと思っています。 参考になる情報をいただければ幸いです。 もちろん、(2)のサンプルコードなどいただければ大変助かります。 どうぞよろしくお願いします。

  • 抽出結果を分割して取得

    SELECT * FROM TABLE ORDER BY A; で取得したデータが100件あったとして、 1件目から20件目だけを取得する 21件目から40件目だけを取得する みたいに、件数を指定して取得するようなSQL文は書くことができますか? データベースはOracle8iです。 よろしくお願いします。

  • VBAでビット情報にてデータ抽出

    ワゴンと計測器がひもついたデータのテーブルがあります。 A***、B***がひもついている計測器の種別のイメージです。 ワゴン1 A001 A002 A003 B001 B002 ここで、 1番の機械だったらA001,B001 2番の機械だったらA001,A002,B001,B002 という風に機械のタイプで使用する計測器のリストを抽出したいと思っています。 データテーブルの構造を変更することは難しいので、支障のない列(PGM)にてフラグにて抽出できないものかと考えました。 PGMの列には24ビット分のデーたが入れられます。 そこで下記の様にPGMの列にビット情報を入れます。(とりあえず8ビットの情報) ワゴン1  PGM   A001   11001011 A002   01001011 A003   00001011 B001   11001011 B002   01001011 1番目の機械だったら、8ビット目が"1"を抽出。2番目の機械だったら7ビット目が"1"を抽出 という風にすればよいかと思っています。 このフラグコントロールをVBAでどの様にしたら良いかを教えていただけませんでしょうか。 あるいは、もっと簡単に対応可能な方法があればとも思っています。 尚、VBA全くの初心者で、ホームページやいろんなサイトにて、 やっと下記のデータ抽出までたどり着けた次第です。 コードに関しては、基本部分を全記述でお願いしたく。 ORACLEのデータベースにMEISAIというテーブルがあり、 ここからEXCELのセルA21に入力された文字列を参照します。 IDがABC CODEがCOMPANY PGMがセルA21の文字列 てデータ抽出する記述。 WG1 = Range("A21") Set rs = OraDatabase.CreateDynaset("select * from MEISAI where ID = 'ABC' AND CODE = 'COMPANY' AND PGM = '" & WG1 & "'", 0&) OFFICE2003 ORACLE V9.0です

  • 1000社データの中から80社データを抽出したい

    約1000社の契約件数3000件の表中から80社200件の契約件数データを抽出したいのですが、良い方法が見つかりません。80社の顧客コードを元に抽出したいのですが、オートフィルターやVLOOKUP関数では時間がかかり過ぎます。 そこで、マクロと思うのですが、どのような構文にすれば良いのでしょうか?ご教授下さい。全ての契約件数は顧客コードで紐ついています。よろしくお願いいたします。

  • データの抽出

    '2012/04/03-20:14:00' => 'WIND' => '5.7' '2012/04/03-20:14:01' => 'WIND' => '5.9' … という風に時間と風速が書かれたテキストデータがあるのですが、この風速が'20'以上の場合の行のみを抽出して表示したいのですが、どのようなプログラムを書けばよろしいでしょうか。

    • ベストアンサー
    • Perl
  • 大量データの分割

    仕事で100万件、200万件という大量データを扱う仕事をしております。 大量データを受領するも、エディタで開こうとするとさすがに100万件を超えるくらいになってくると非常に時間がかかる、もしくは、固まってしまうという事態が頻発しています。 ファイルを開かずに、プログラムに食わせて、20万件ずつくらいに分割したいのですが、バッチファイル、もしくはvbスクリプトなどで作ったスクリプトに食わせて、20万件なりの一定件数ごとに分割するにはどうすればよいでしょうか? バッチファイルでもvbスクリプトでもperlでも言語は問わないので、いい方法をご教授いただきたく存じます。 よろしくお願い致します。