2

助けが必要です。名前にsysdateを含むPL/SQLを使用して表を作成したいですか?たとえば、table_name_sysdate?

.csvファイルと読み取りたいファイル名から読み取る外部テーブルを作成しようとしています。その名前は定数(table_name)と日付(sysdate)で構成されています。このファイル名は、日付に応じて毎日変更できます。毎日変更可能なファイル名からロードするメカニズムを作成する方法がわかりません。

これは私のコードです。疑問符の付いた角かっこ内に何を入れるべきかわかりません。

create table ext_table_1
(med_name varchar2(20),
cost integer)
organization external
(type ORACLE_LOADER 
default directory orders
access parameters
(records delimited by newline
fields terminated by ',')
location (???)
reject limit 200;
4

3 に答える 3

3

The file is specified in the LOCATION property of the table. You can change it with an alter table statement, like this:

 alter table log_files location ('prefix_20121219.csv');

So basically, create the table with today's file and then just run the ALTER TABLE statement each day, in a scheduled job or similar operation.

または、ファイル名を固定して、毎日のファイルをその名前に変更/コピーすることもできます。11gR2 で実行している場合は、プリプロセッサ ファイル (シェル スクリプト) を関連付けて、外部テーブルにクエリを実行するたびにこれを実行できます。 詳細をご覧ください

于 2012-12-19T22:33:34.870 に答える
1

これはディレクトリ オブジェクトへの参照であり、「ディレクトリの作成」で作成します。

http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_5007.htm

于 2012-12-19T17:07:58.257 に答える
0

基本的に、外部CSVファイルからテーブルにロードする必要があり、ファイル名にはタイムスタンプが含まれているため、名前は毎回変わります。外部スクリプトは、そのファイルを単純にコピーして (ファイル名からタイムスタンプを抽出し、それが正しい形式で今日に一致するかどうかを確認します)、ロード スクリプトが期待する標準名にします。後で元のファイルが必要になった場合は、上書きする前に、まずバックアップ ディレクトリにファイルのコピーを作成します。

于 2016-12-07T02:11:47.027 に答える