0

状況

Oracle データベース サーバー (2008 R2 Enterprise Edition Windows サーバー) に、inventory.csv という名前の CSV ファイルがあります。この CSV ファイルは、Oracle 外部テーブルとして使用されます。

1 時間ごとに、スケジュールされたタスク (Windows タスク スケジューラ) が .bat ファイルを実行します。このファイルは、更新されたバージョンの inventory.csv をコピーして、元のファイルを上書きします。

その後、データはレポート アプリケーションによって使用されます。

問題

inventory.csv のデータを使用するアプリケーションは、データが最後に更新されたのがいつかを知る方法がありません。

理想的には、「最終更新日」がテーブルの列としてアクセスできるようにしたいと考えています。

考えられる解決策の 1 つは、現在の日付/時刻のログを別のファイルにトリガーし、それを外部テーブルとしても参照することです。ただし、このソリューションには可動部分が多すぎるため、可能であれば、よりシンプルなものを希望します。

CSVファイル自体がいつ作成されたかを知っていることは知っています...Oracle外部テーブルがCSVファイルのプロパティから「作成日」を読み取る方法があるかどうか疑問に思っていますか?

または他のアイデアはありますか?

4

1 に答える 1

2

オラクルのバージョンは?

11.2 以降を使用している場合は、外部テーブルのプリプロセッサ機能を使用して、ファイルをロードする前にシェル スクリプト/バッチ ファイルを実行できます。私のバイアスは、単純化することです。前処理スクリプトで日付を取得し、それを別のファイルに保存し、そのデータを読み込んで公開する別の外部テーブルを用意します。すべての行に日付を追加するよりも簡単です。

于 2016-09-06T17:12:04.090 に答える