• 締切済み

データの精査

今、会社ではセキュリティソフトを入れており、機能の一つとして端末操作のログを残してます。 そのログを精査してDBに入れたいと考えています。そこでSQLLOADERでデータをアップしようとしたのですが、データにあまりにも重複分があるためエラーになります。調べてみると許容エラー数は50だそうです。 単純にテーブル側で一意キーを設定したら重複分はアップされるときに精査されると思いましたがそうでもないようです。 ログは一週間で消えますので日々保存し日々アップを考えてますので重複分のデータの方が多いです。 なんとか精査してDBにいれることはできないでしょうか?

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

みんなの回答

  • FudaKeji
  • ベストアンサー率73% (58/79)
回答No.4

>すみませんでした。 間違ったことをしているわけではないので誤る必要はありませんよ。(^^) ツールを便利に使うことも大切ですが、ツールにも得意不得意がありますのでより効率よく出来る方法を選択することが重要だと思います。 私は今回の要件であればプログラムを介すことが最適だと思いました。

回答No.3

sqlldrのオプションと制御ファイルを教えてください。 direct=trueにしていませんか?

TRIPLE-G
質問者

補足

direct=falseになってます。

  • FudaKeji
  • ベストアンサー率73% (58/79)
回答No.2

事前/事後にプログラムで重複データを削除すれば良いのではないでしょうか。 sql*loaderで入れることが目的ではなく、DBに正しく入れることが目的ですよね?

TRIPLE-G
質問者

お礼

そうですDBに正しく入れることが目的です。 プログラムの勉強の必要があるみたいですね。 すみませんでした。

回答No.1

SQL*LoaderはデフォルトのERRORSは50ですがオプションで指定してやれば増やすことは可能です。 ERRORS=1000000くらいにしておけばいいんではないでしょうか? チェックにひっかかったものは全てbadファイルとして吐かれると思います。 しかし、そんなに重複データが多いデータでいいんでしょうか?

TRIPLE-G
質問者

補足

多いです。一日3000件程ですので単純に6×3000=18000は重複データです。 一度オプションから指定したいと思います。 badファイルも毎日クリアしないと膨大な量になりますね。

関連するQ&A

  • 一意の文字列を構造体に格納したい

    VisualBasic6.0で開発を行っています。 あるデータを取得するときにキーが重複しているデータが存在し、構造体に一意に格納したいのですが、重複した文字列は処理を省くようにできる関数などはありませんでしょうか? DBで一意に取得が一番いいのでしょうが、それができないような形になっています。 アドバイスお願いいたします。

  • 重複データの整理

    アクセス2000を使用。毎日データを分析して抽出されたデータを累積テーブルに追加して蓄積していますが、その日々の抽出されたデータにデータが重複してる場合があります。(これは2種類のコード{日付と企業コード}を重複キーとしているためとおもわれる) 累積された蓄積テーブルから同一日における重複コードを削除する方法を 教えてください。  日付は 20070907、20070908の形式  コードは4桁の整数   例示 20070901  1 20070901  2 20070901  2・・・(消す) 20070901  3 20070901  3・・・(消す)     20070901  4 よろしくお願いします

  • オラクルのエクスポートについて

    こんにちわ。 あるdmpファイルをインポートした際、その中のデータには主キーの重複したレコードが存在しているらしく一意制約エラーでおちてしまいます。 もちろん、テーブル構造もエクスポートしている為、エクスポートした時点で、テーブル内がそのような状況になるということは有り得ないはずなのですが、バイナリエディタで覗くと実際、キーの重複したデータが存在しています。 というわけで、dmpファイルをバイナリエディタなどで編集するというようなことはナシで(あくまでオラクルユーティリティ内の範疇で)、そのようなdmpファイルを強引に作ることが出来るのでしょうか? よろしくお願いします。

  • 一意のデータを取得

    現在、ASPを利用して DBへ登録するプログラムを組んでいます。 そこで、DBへ登録時に主キーとして使う一意のデータを 作りたいのです。 DB(例えばaccess)のオートナンバー型式を使えば、できますが、これをASPプログラムのほうで作成したいのです。 宜しくお願いします。

  • 重複しないデータの抽出について

    MYSQL5.0.77で DBをつくり テーブル1のAフィールドのデータから テーブル2のAフィールドのデータ、 テーブル3のAフィールドのデータ、 テーブル3のAフィールドのデータ、 のいずれにも重複しないデータのみ 抽出したいと思っています。 どのようなSQL文を書けばよいでしょうか? じぶんでいろいろ試しましたがどうしても出来ません。 どなたかご教授願います。

    • ベストアンサー
    • MySQL
  • エクセルのデータをアクセスのテーブルにインポート

    エクセルのデータをアクセスのテーブルにインポートしたくて、 アクセスから外部データのインポートでエクセルを指定してるのですが ************************************************************************ ワークシート インポートウィザード インデックス、主キー、またはリレーションシップで重複する値が生成されてるため、 テーブルを変更できませんでした。 重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。 ************************************************************************ になってしまいます。 エクセルの列名を見ても重複していないし(COUNTIF関数で確認しました) アクセス側のウィザードでインデックスはどこのフィールドにもつけてないし、 「主キーを設定しない」もしくは「主キーを自動的に設定する」にしているのに、何をやっても上記のエラーがでます。 ググっても同じようなエラー内容が見つからないのですが、どうしたらいいでしょう? ヴァージョンはエクセルは2007、アクセスは2010です。バージョンの相違が原因でしょうか?

  • 改行がはいったデータでエラー?

    サーバを変更することになり、PostgreのDBも移行することになりました。 Postgreのバージョンは 現在:7.1.3 新:8.1.4 です。 現在のDBのダンプファイルを作成し、 新しいDBにリストアしたのですが、 いくつかのテーブルでエラーがでて、 データのコピーができませんでした。 (テーブルは作成できましたが、データなく、空です。) エラーがでたテーブルには、どれも改行のはいったデータがあるので、 これが原因ではないかと思うのですが、 改行の入ったデータは何か問題があるのでしょうか? また、もし改行が原因であれば 何か解決策はありますでしょうか? 以上、よろしくお願いいたします。

  • Access 主キーについて

    Accessでテーブルを作りCSVファイルをテーブルへ読み込みました。その時は主キーを設定しませんでした。1000件あるデータは1000件分読み込めました。 次にテーブルのデータを消して、主キーを2フィールドに設定して、同じように1000件分のデータを読み込んだら950件分しか読み込めませんでした。これは50件は重複するデータがありますよということなのでしょうか?

  • ACCESS2000の主キー重複について

    いつもお世話になっています。 早速ですが、お教えください テーブル名:AMaster フィールド名:B があります。 「B」は主キーになっていまして、ユーザーが任意に数字をいれることになります。 主キーになっていますので基本的には重複しないのですがユーザーの押し間違いなどによって重複してしまった場合 [Microsoft][ODBC Microsoft Access Driver] インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。 といったエラーメッセージが出ます。これは出ても構わないのですがツールバーの「戻る」でしか今後の操作ができなくなってしまうので(ユーザーはPC超初心者)何らかの形でエラーメッセージとともに任意のページへ戻れるようにしたいと考えています。 つきましては、「B」フィールドにあるデータとこれから入力される数値が重複していたら・・・という記述をお教えいただきたいと思います。 ASPにて作成していますのでそれに対応した記述ですとありがたいです。 過去のログに似たようなものがありましたがこちらを参照してもボクにはわかりませんでした。 http://okweb.jp/kotaeru.php3?q=357614 ボクも何分初心者なのでわからないことだらけですがよろしくお願いします。

  • SQL文の結合(一対多)がわからない

    色々とネットで調べてみたのですが、ピンとこないので質問させていただいています。 以下のようなテーブルを想定しています。 「テーブルA」 ユニークキー データ1 データ2 ・・・ 0001 ... 0002 ... 0003 ... 「テーブルB」 キー データA データB ・・・ 0001 ... 0001 ... 0002 ... テーブルAではユニークキーは重複していないのですが、テーブルBのキーは重複しています。 このような状況で、テーブルBの”キー”とテーブルAの”ユニークキー”を照合させて、テーブルBに”データ1 データ2 ・・・”を流し込みたいと思っています。 現状では、複数の検索結果が出るためにエラーとなっています。「一対多」結合を利用するというところまではわかったのですが、そこから先がよくわかりません。 どなたか解説していただけないでしょうか。 初心者の質問で恐縮ですが、お教え頂ければ嬉しいです。