データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle外部テーブルを使用する

外部テーブルは、データベースの外部に格納されているフラットファイルからデータを受け取り、Oracle®がそれらのファイルのデータをクエリできるようにします。

はじめに

Oracleは、SQL*Loaderでサポートされている任意のファイル形式を解析できます。外部テーブルでデータ操作言語(DML)を使用することはできませんが、クエリ、結合、および並べ替えの操作にDMLを使用することはできます。外部テーブルに対してビューとシノニムを作成することもできます。

外部テーブル機能を利用するには、ORACLE_LOADERaccessドライバを使用し、データファイルがテキスト形式であることを確認する必要があります。また、構造化照会言語(SQL)を理解して、外部テーブルを作成し、それに対して照会を実行できるようにする必要があります。

Oracleデータベースに外部テーブルを作成します

Oracleローダーを使用して外部テーブルを作成するには、次の手順を実行します。

ディレクトリを作成する

次のコードを使用して、ユーザーが提供したカンマ区切り値(CSV)またはテキストファイルの場所を指すディレクトリを作成します。

create directory vk_dir as '/opt/oracle/app/admin/je1prd/mods/151214_CHG0004529';
外部テーブルを作成する

次のSQLを使用して、外部テーブルを作成します。

create table kumarv5.VK_4529_ext
(
  IBMCU   NCHAR(12),
  IBLITM   NCHAR(25),
  IBANPL   NUMBER
)
organization external
(
   type oracle_loader
   default directory vk_dir
   access parameters
   (
     records delimited by newline
     logfile vk_dir:'VK_4529_ext.log'
     badfile vk_dir:'VK_4529_ext.bad'
     discardfile vk_dir:'VK_4529_ext.dcf'
     skip 1
     fields
     terminated by '~'
     missing field values are null
     reject rows with all null fields
     (
       IBMCU,
       IBLITM,
       IBANPL
     )
   )
   location
   (
     'data14.csv'
   )
)
reject limit unlimited;
ローカルテーブルを作成する

外部テーブルでDMLを実行することはできないため、次のコードを使用して、外部テーブルに基づいてローカルテーブルを作成します。

--create
create table kumarv5.VK_4529_int
(
  IBMCU   NCHAR(12),
  IBLITM   NCHAR(25),
  IBANPL   NUMBER
)
tablespace proddtat;
外部からローカルテーブルにデータをコピーします

次のコードを使用して、外部テーブルからローカルテーブルにデータをコピーします。

--insert
Insert into kumarv5.VK_4529_int   select * from kumarv5.VK_4529_ext;
commit;
select count(*) from kumarv5.VK_4529_int;
メインの本番テーブルを更新します

外部テーブルに基づいてローカルテーブルを作成したら、次のコードを使用して、ローカルテーブルからメインの本番テーブルを更新できます。

update PRODDTA.F43090 a
    set a.PCMCU='         1AM'
    WHERE (a. IBMCU, a. IBLITM, a. IBANPL) in
       (select b. IBMCU, b. IBLITM, b. IBANPL from kumarv5.VK_4529_int b );
外部テーブルから通常のテーブルにデータをロードする

次の画像は、外部テーブルから通常のテーブルにデータをロードする方法を示しています。

Oracle外部テーブルを使用する

画像ソース :https://dba.fyicenter.com/faq/oracle/Load-Data-from-External-Tables.html

結論

外部テーブルを使用すると、データベース内のテーブルにあるかのように、外部ソース内のデータにアクセスできます。ユーザーがスプレッドシートまたはCSV形式でデータを提供し、Excelシートに基づいてデータベーステーブルを更新する必要がある場合は、外部テーブルが便利です。

コメントや質問をするには、[フィードバック]タブを使用します。今すぐチャットして会話を開始することもできます。

データベースの詳細をご覧ください。


  1. Oracle Databaseのリフレッシュ可能なクローン機能を使用する—パート2:デモンストレーション

    シリーズのパート1では、Oracle®リフレッシュ可能クローンの概要を、いつ、なぜ使用するかを含めて説明します。この投稿では、Oracle 18cで更新可能なクローンプラガブルデータベース(PDB)をセットアップ、構成、保守、およびドロップする方法を示します。 更新可能なクローンPDBの前提条件 このデモンストレーションを実行するには、次の前提条件を完了してください。 ローカルまたはリモートコンテナを指す、新しく作成された更新可能なクローンのデータベースリンクを用意します。 archive_log_modeを設定します enabledへ 。 設計されたシステムまたはEnte

  2. Mac で外付けハード ドライブを使用する方法

    Mac コンピューターは、その派手な外観と使いやすい macOS により、常に人気があります。 Mac または MacBook の唯一の欠点は、ストレージが限られていることです。大部分の Mac ユーザーは、大容量のストレージ スペースを備えた Mac ラップトップを購入する代わりに、Mac 用の外付けハード ドライブを使用して、Mac からファイルを転送してストレージを拡張することを選択します。 Mac で外付けハード ドライブを使用する方法に慣れていない場合 または、Mac で外付けディスクを使用する際に問題が発生した場合は、この投稿が最適です。読み進めてください。 目次: 1.外