- 締切済み
オラクルDBのデータ削除タイミング
お世話になります。 .NETとオラクルで作られた小さいシステムを引き継ぎました。 その中にメインになるDBがあり3ヶ月以前のデータは .NETの夜間削除処理APでDELETEしています。 そのメインDBにトリガーテーブルがあるのですが、1日分の データしか保存されていません。 しかし、どこで消えているのかが見つけられないでいます。 .NETの全APを検索してもないし、オラクルの機能であるような気が しているのですが、よくわかりません。 トリガーの条件は「INSERT」と「UPDATE」です。 どなたかヒントを下さい
- akaoni_nai
- お礼率91% (43/47)
- Oracle
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- taka451213
- ベストアンサー率47% (436/922)
>>.NETの夜間削除処理APでDELETEしています。 これが正しければ、これ以外に探すところがありません・・・。 ほかの可能性を模索しなければいけないのですよね? DELETE処理のPROCESSを捕まえてみては?
- taka451213
- ベストアンサー率47% (436/922)
ですか・・・。 なら、バッチとか・・・? Windows自身のタスクは確認済みですよね?
補足
<.NETの夜間削除処理APでDELETEしています タスクスケジュールに設定されているAPがこれです。 このAPの中ではその肝心のトリガーテーブルの記述は一切、ありません。 また、そのAPの中でバッチ起動しているのを発見し「これだ!」と思ったのですが 中をみたら全部コメントアウトしてあり、さらにコメントをはずしても 全く動きそうもない内容でした。 また、間があいてしまい申し訳ありません。 まだ、探しています
- taka451213
- ベストアンサー率47% (436/922)
見てないのでわかりませんが・・・、 トリガーじゃないですか?
補足
トリガーのタイミングには「DELETE」が入っていないのです。 遅くなりましたが未だに解答が見つけられないでいます・・・
関連するQ&A
- ORACLEのトリガーについて勉強しているのですが現在詰っています。
ORACLEのトリガーについて勉強しているのですが現在詰っています。 トリガーの内容ですが、table1のレコードがUPDATEかINSERTかDELETEが 実行された時にtable2にそのレコードすべてをINSERTしたいのですが CREATE OR REPLACE TRIGGER test_trg After INSERT or UPDATE or DELETE on table1 for each row BEGIN if inserting then insert into (?); elsif updating then insert into (?); else insert into (?); end if; END; tableを使ってログを残せるようにするためこのトリガーを作ろうとしています。 この様な感じになると思っているのですが、(?)の部分をどう書けばいいのか がよくわかりません。どうしても解らないので教えていただければ幸いです。 何卒よろしくお願いします。
- ベストアンサー
- Oracle
- DB初心者です。
DB初心者です。 現在、システムのDBで「TERADATA」を使用しています。 データ整理という名目で、不要なテーブルやデータを削除したりしたいと思っています。 (システム稼働中で行う作業) 中には数百GB級の不要テーブルもあり、システムが稼働中の中、 気軽にDROPまたはDELETEをしていいものなのか迷っています。 (しかし、この不要テーブルはどこからも参照されません) 別なところでは、 巨大な不要テーブルを削除したら、 統計情報が変わってしまい、ローディングなどが異様に遅くなったとの話も聞いています。 システムとは関係なく、DB内での影響はあるのでしょうか?
- 締切済み
- その他(データベース)
- Oracleのトリガーについて
Oracleのトリガーについて質問です。 旧システムから新システムへデータ移行を行おうとしているのですが、 新システムではNEWテーブル(仮名)が新規で追加されています。 データ移行の方法として、旧システムのダンプファイルをエクスポートし、 新ステムにユーザを再作成後インポートしました。 その後、あらかじめ新システムでNEWテーブルのみテーブル指定のエク スポートを行っていたダンプファイルより、追加でインポートを行いました。 これでデータ移行完了と思っていたのですが、NEWテーブルのデータはトリガー により生成されるらしいのですが、どのタイミングで生成されるのでしょうか? データ移行完了時はデータ0件です。 NEWテーブルをインポートする順番が逆なのでしょうか? それともインポートではトリガーは起動しないのでしょうか? または、トリガーの仕組みが消えている(?)のでしょうか? (納入先に行かないと確認できない状態なので実際のデータベースが確認できません…) Oracleはあまり詳しくないため、わかりづらい質問かもしれませんが よろしくおねがいします。 【環境】 Oracle11g R2 Windows2008Server
- ベストアンサー
- Oracle
- DBの削除にあたって
現在オラクルの9iを使用しています。 .sqlを使用して削除しようと思うのですが オラクルの9iのシステムが使用しているテーブルは そのままにしておき削除したくありません。 そこでオラクルの9iが使っているテーブル(スキーマ?)の名前を知りたいのですが?
- 締切済み
- Oracle
- 異なるDBに存在するテーブル間のミラーリング
PHP5とMySQL5でショッピングサイトを作成しています。 サイトSとS'があり、それぞれがデータベースDBとDB'を使用しています。そして、DBとDB'にはそれぞれ顧客テーブルTとT'があります。 この状況で、Tに対して更新処理をしたときに、T'に対しても同じ更新処理を しなければなりません。逆の場合も同じです。つまり、TとT'の間でミラーリングのようなことを行いたいのです。 updateとdeleteの場合は、次のような処理の流れで問題が内容に思われます。 サイトS中のスレッドの場合 step1. DBに接続 step2. Tに対してupdate/deleteする step3. step2でupdate/deleteされた列の主キーを取得 step4. DB'に接続 step5. T'に対してstep3で取得した主キーを用いてupdate/deleteする しかし、insertの場合の処理の流れが思いつきません。一応次のような流れが思いついたのですが・・・ サイトS中のスレッドの場合 step1. DBに接続 step2. Tをロック step3. DB'に接続 step4. T'をロック step5. Tに対してinsert step6. T'に対してinsert step7. T'のロック解除 step8. Tのロック解除 しかし、これだとデッドロックが発生する可能性があると思うのですが、 どうしたらよいのでしょうか?
- 締切済み
- MySQL
- ファイルDB連携で質問です。
テーブルと同じレイアウトのテキストファイルを読込んで - 同一キーが存在し、データも同一なら何もしない - 同一キーが存在し、データが変更ならUPDATE文を作成 - 同一キーが存在しなければINSERT文を作成 しファイル出力したいのですが、 どんな手法がベストでしょうか? 私の考えつく方法はどうもDBを活かしきれていない気がします。DBはMySQL4でUNIONも使えるのですが、オラクルブロンズレベルでは思いつかず参っています。 ■テーブル(ファイルレイアウト)key1,key2は複合キー key1 key2 data1 1 0 5 2 3 6 ■処理の流れ ファイルがありテーブルが存在しなければ ファイル読込でテーブルへそのままインポート ↓ ファイルがありテーブルが存在したら、 既存テーブルをリネーム後に、 ファイル読込でテーブルへそのままインポート ↓ インポートしたテーブルを全件SELECTし、 リネームしたテーブルへ1件ずつSELECTマッチ処理を行った結果によりファイルへINSERTやSELECT文を出力していく。 ファイルの行数が多いと相当重い処理になりそうで。。
- ベストアンサー
- その他(データベース)
- ORACLE DBへ初期化していない領域のレコードを
ORACLE DBへ初期化していない領域のレコードを INSERTで追加した場合、どのような値のデータ(文字コード)が 格納されるのでしょうか?
- ベストアンサー
- Oracle
- ORACLEでのSQL、シンプルな方法は?
ORACLEでのSQL文について質問です。 SQLで条件に合うレコードがあるかどうかはどう判別するのでしょうか? 画面で2つの条件を選んで テーブル ・ステータス ・フラグ 条件に合うレコードがなければINSERT 条件に合うレコードがあればUPDATE レコードが元々あるが、画面で指定された条件から外れる場合はDELETE としたいのですが、うまくSQLが書けません。 レコードがあればupdate、なければinsertするというのは多いのですが。 何かシンプルな方法はないでしょうか。
- 締切済み
- Oracle
- SQLServerのロック?について
お世話になっております。 早速ですが、質問させていただきます。 ASP+SQLServer2000で社内システムの作成などを行っております。 ASP上から社員がデータを打ち込んでいるシステムがあるのですが、同時にSELECT、UPDATE、INSERT、DELETEを一つのテーブルで行っております。 その際、SELECTとUPDATE、INSERT、DELETEの処理がかぶると画面が固まったように処理が長くなります。 自分でわかる限りの原因としては検索レコードは10万件くらいからやっているのですが、SELECTで検索中にINSER、UPDATE、DELETE処理がくるとウエイト状態になり、異常に時間がかかってしまい、タイムアウトしてしまっています。 INSERTやUPDATEが処理かぶっても特に処理はとまらないのですが、先にSELECT処理していてINSERTやUPDATE処理がくるとまったく動かなくなってしまうのです。 こちらの原因とか少しでもわかる方いらっしゃれば、お知恵をお貸しください。
- ベストアンサー
- SQL Server
お礼
また、作業がてすきになったのでDELETE処理を探しました ^_^; そして!ついに発見しました! オラクルのジョブキューにその定義がありました。 そんな定義があるとは全く知らず (オラクルの機能を把握してないのもありますが・・・) どこかにタイマーセットしてる感じはしていたのですが 探しあぐねていました。 すっかりごぶさたしてしまいました。 いつ、お礼をしようとずっと気がかりでした。 ご協力、ありがとうございました!!