- 締切済み
SQLでのファイルの更新日時の取得方法
いつもお世話になっております。 現在SQLの勉強をしているのですが、テーブルのファイルの更新日時の取得方法(select文)が分からず行き詰まっております。教えて頂けないでしょうか。 なお、SQL*PLUSを使用しています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- bardfish
- ベストアンサー率28% (5029/17766)
SQL*Plusと言うことはOracleですね。 まず、SQL自体ではそういうことはできません。 できたとしたらRDBMS固有の拡張機能です。 ですので、Oracleのマニュアルを熟読しましょう。 そもそも、Oracleは1テーブル1ファイルと言う構成ではないはずです。 そういう構築も不可能ではありませんが…見るとしたらテーブルの情報ではなくテーブルスペースの情報でしょうね。 この辺はSQL云々ではなく、Oracleそのものの勉強になります。 まずはCREATE DATATABASEでインスタンを作成した後テーブルやインデックスなどを格納するテーブルスペースを作成。その後CREATE TABLEで各種テーブルを作成したはずです。 Oracleにはデーターベースインスタンス毎に管理テーブルを持っていて、その管理テーブルを参照するとテーブル一覧や、各テーブルの項目、データタイプなどを取得することもてきます。 ただ、INSERTやUPDATE、DELETEで更新が発生した場合の更新日時は持っていなかったと記憶しています。 トランザクションを使用した場合、更新系命令を実行した時間と実際にコミットされた時間が異なる場合がありますからね。 トランザクションを利用するとロールバックを行うことができます。 簡単に言うと、ランザクションを開始した時点(セッション)からの各種更新処理をなかったコトにできる。
- asciiz
- ベストアンサー率70% (6803/9674)
データベースファイルそのものの更新日時は取得できません。 データベースファイルは、データの追加・削除時以外にも、インデックスの再構築やガベージコレクションなどで度々更新されるので、物理ファイルの更新日時だけを取得したところで、何によって更新されたものかわからない、無意味な情報だからです。 データの更新日を取得したいなら、レコードそのものに更新日時のフィールドを作り、記録してください。 「物理ファイルの更新日時を調べる」という事自体、データベースを使う考え方としては不自然です。