- 締切済み
データの精査
今、会社ではセキュリティソフトを入れており、機能の一つとして端末操作のログを残してます。 そのログを精査してDBに入れたいと考えています。そこでSQLLOADERでデータをアップしようとしたのですが、データにあまりにも重複分があるためエラーになります。調べてみると許容エラー数は50だそうです。 単純にテーブル側で一意キーを設定したら重複分はアップされるときに精査されると思いましたがそうでもないようです。 ログは一週間で消えますので日々保存し日々アップを考えてますので重複分のデータの方が多いです。 なんとか精査してDBにいれることはできないでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- FudaKeji
- ベストアンサー率73% (58/79)
>すみませんでした。 間違ったことをしているわけではないので誤る必要はありませんよ。(^^) ツールを便利に使うことも大切ですが、ツールにも得意不得意がありますのでより効率よく出来る方法を選択することが重要だと思います。 私は今回の要件であればプログラムを介すことが最適だと思いました。
- yuta94t419
- ベストアンサー率52% (11/21)
sqlldrのオプションと制御ファイルを教えてください。 direct=trueにしていませんか?
- FudaKeji
- ベストアンサー率73% (58/79)
事前/事後にプログラムで重複データを削除すれば良いのではないでしょうか。 sql*loaderで入れることが目的ではなく、DBに正しく入れることが目的ですよね?
お礼
そうですDBに正しく入れることが目的です。 プログラムの勉強の必要があるみたいですね。 すみませんでした。
- whiteline507
- ベストアンサー率63% (47/74)
SQL*LoaderはデフォルトのERRORSは50ですがオプションで指定してやれば増やすことは可能です。 ERRORS=1000000くらいにしておけばいいんではないでしょうか? チェックにひっかかったものは全てbadファイルとして吐かれると思います。 しかし、そんなに重複データが多いデータでいいんでしょうか?
補足
多いです。一日3000件程ですので単純に6×3000=18000は重複データです。 一度オプションから指定したいと思います。 badファイルも毎日クリアしないと膨大な量になりますね。
補足
direct=falseになってます。