ヘッダーをスキップ

Oracle Database 2日でデータベース管理者
10g リリース2(10.2)

B19197-03
目次
目次
索引
索引

戻る 次へ

8 スキーマ・オブジェクトの管理

この章では、スキーマ・オブジェクトの管理について説明します。この章の内容は次のとおりです。

スキーマ・オブジェクトの概要

スキーマは、データベース・オブジェクトの集合です。スキーマは、データベース・ユーザーが所有し、そのユーザーと同じ名前です。スキーマ・オブジェクトは、ユーザーが作成する論理構造です。表、索引などのオブジェクトには、データを格納したり、またはビュー、シノニムなどの定義のみで構成することができます。


注意:

表領域とスキーマは関係がありません。同じスキーマ内のオブジェクトに、異なる表領域の記憶域を使用できます。また、1つの表領域に、異なるスキーマのデータを格納することもできます。 


スキーマ・オブジェクトは、SQLまたはOracle Enterprise Managerを使用して作成および操作できます。基礎となるSQLは、Oracle Enterprise Managerによって作成されます。

この項の内容は次のとおりです。

データベース・スキーマ・オブジェクトの確認

データベースのスキーマ・オブジェクトを検索し、管理するには、「データベース」の「管理」プロパティ・ページ(図5-2「「データベース」の「管理」ページ」を参照)を開き、「データベース・オブジェクト」セクションのいずれかのリンクをクリックします。図8-1にこれらのリンクを示します。

図8-1    「データベース・オブジェクト」のリンク


画像の説明

データベースのオブジェクトを表示するには、「データベース・オブジェクト」ヘッダーでリンクをクリックします。いずれかのデータベース・オブジェクトのホームページにある「検索」セクションから、任意のスキーマ・オブジェクトにアクセスすることもできます。

スキーマ・リンクを選択すると、標準のObject_Nameのページが表示されます。図8-2に示すとおり、「スキーマ」および「オブジェクト名」ボックスに値を入力してオブジェクトを検索できます。

図8-2    「データベース・オブジェクト」ページの「検索」セクション


画像の説明

他のスキーマ・オブジェクト(「データベース・オブジェクト」ヘッダーの下に直接のリンクが表示されないスキーマ・オブジェクトを含む)にアクセスすることもできます。特定のデータベース・オブジェクトを選択するには、「オブジェクト・タイプ」リストからオプションを選択します。

ネーミング・スキーマ・オブジェクト

データベース内のどのオブジェクトも、1つのスキーマのみに属し、そのスキーマ内で一意の名前を持ちます。オブジェクトを作成する場合は、そのオブジェクトを格納するスキーマに作成する必要があります。通常、単一のアプリケーションに属するすべてのオブジェクトは、同じスキーマに配置します。

データベース・オブジェクト名は、スキーマ内で一意にするなどの特定のルールに従う必要があります。また、オブジェクト名は30バイト以下で、文字から始める必要があります。これらのルールに違反する名前を使用してオブジェクトを作成しようとすると、エラーが発生します。

参照:

データベース・オブジェクトのネーミングの詳細は、『Oracle Database SQLリファレンス』を参照してください。 

表の管理

次の項では、データベースの表と、それを作成および編集する方法について説明します。

表は、Oracleデータベースにおける、データ記憶域の基本的な単位です。表には、ユーザーがアクセスできるすべてのデータを格納します。各表には、列と行があります。たとえば、employees表には、last_nameおよびemployee_idと呼ばれる列があります。表の各行には、従業員名および従業員番号の値が格納されます。

表タイプ

Oracleデータベースの表で最も一般的なタイプは、リレーショナル表です。これは、employees表のような構造です。この他に、オブジェクト表およびXMLType表の2つのタイプがサポートされます。3つのタイプの表のいずれも、永続または一時として定義できます。一時表は、複数のユーザーが使用できるようにしたり、その表を作成したユーザーのみが使用できるようにすることが可能です。

リレーショナル表は、ヒープ構成または索引構成構造で作成できます。前者では、行は特定の順序では格納されません。索引構成表では、行の順序は選択した1つ以上の列の値によって決定されます。

この項では、永続的なヒープ構成表を主に説明します。他の表タイプについては、『Oracle Database管理者ガイド』、『Oracle Database概要』および『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。これらの表を作成および変更するために必要な構文については、『Oracle Database SQLリファレンス』を参照してください。

列属性

次に示す1つ以上の特性を使用して、表の各列を定義します。

データ型

この必須属性は、列に格納されるデータの種類を定義します。また、列に格納できる最大長の値を示すことができます。

制約

このオプション属性は、その列における有効な値を定義します。列レベルまたは表レベルで定義できる制約もあります。Enterprise Managerでは、「表の作成」プロパティ・ページの列レベルで定義される制約は、NOT NULL制約です。この制約では、表内の対象となる列のすべての行に値が含まれている必要があります。

デフォルト値

この値は、新しい行が挿入され、その列に値が指定されていない場合に、その列に自動的に格納されます。

次の項では、これらの列について説明します。

データ型

表を作成する場合、各列に対してデータ型を指定する必要があります。プロシージャまたはストアド・ファンクションを作成する場合、各引数に対してデータ型を指定する必要があります。

これらのデータ型は、各列または引数に保持できる値の領域を定義します。たとえば、DATE列に、February 29(うるう年を除く)、2またはSHOEという値を含めることはできません。列に入る値は、その列のデータ型を受け継ぎます。たとえば、DATE列に17-JAN-2004を挿入すると、Oracleはそれが有効な日付に変換されることを検証してから、その文字列を日付値として処理します。

表8-1に、一部の一般的なOracle組込みデータ型を示します。

表8-1    共通のデータ型 
データ型  説明 

VARCHAR2(size [BYTE | CHAR]

最大長がsizeバイトまたはsize文字の可変長文字列。sizeの最大値は4000バイトまたは4000文字です。最小値は1バイトまたは1文字です。VARCHAR2には、sizeを指定する必要があります。

BYTEは、列がバイト長セマンティクスを持つことを示し、CHARは、列がキャラクタ・セマンティクスを持つことを示します。 

NUMBER (p,s) 

精度p、位取りsを持つ数値。精度pには1〜38の値を指定できます。位取りsには-84〜127の値を指定できます。 

DATE 

紀元前4712年1月1日〜紀元9999年12月31日までの有効な日付。 

CLOB 

シングルバイトまたはマルチバイト・キャラクタを含むキャラクタ・ラージ・オブジェクト。固定幅および可変幅のキャラクタ・セットがサポートされます。両方のキャラクタ・セットでデータベース・キャラクタ・セットが使用されます。最大サイズは(4GB-1)×(データベース・ブロック・サイズ)です。 

参照:

Oracle組込みデータ型の完全なリストは、『Oracle Database SQLリファレンス』を参照してください。 

ほとんどの表では、NUMBERVARCHAR2およびDATEのデータ型の列のみが必要です。

数値データを定義する場合、精度オプションを使用して桁の最大数を数字で設定し、スケール・オプションを使用して小数点より右にある数字の桁数を定義できます。たとえば、通貨の値を格納するフィールドで、通貨の主要単位(ドル、ポンド、マルクなど)を10桁に、補助単位(セント、ペニー、ペニッヒ)を2桁にするには、NUMBER(12,2)と定義します。

文字データのVARCHAR2フィールドを定義するには、サイズ値を含める必要があります。サイズに列で格納する最大バイト数または最大文字数を設定します。たとえば、様々な国の郵便番号を格納する列では、VARCHAR2(12)のように定義して、12バイトに制限できます。

DATE列は、日付および時刻の要素を含めるように、自動的に書式化されます。

NOT NULL列制約

列に対するNOT NULL制約では、行が挿入または更新されると常に、列に値が含まれている必要があります。「表レベル制約」で説明する他の制約(列定義または表定義の一部として定義可能)とは異なり、NOT NULL制約は、列定義の一部として定義する必要があります。

そのデータがデータベースの整合性に必要な場合は、NOT NULL制約を使用します。たとえば、すべての従業員が特定の部門に所属している場合、部門識別子を含む列には、NOT NULL制約を定義する必要があります。一方、行が追加または変更されたときに、データが未定または存在しない場合(たとえば、住所の補助的なオプション行)は、列をNOT NULLで定義しません。

主キー制約は、主キーを含む1つ以上の列に対し、自動的にNOT NULL制約を追加します。

デフォルト値

デフォルト値を使用して列を定義すると、行にその列の代替値が指定されていない場合には、表に挿入される新しい行にデフォルト値が格納されます。

表レベル制約

Oracleデータベースでは、ルールを適用してデータの整合性を維持できます。たとえば、従業員データを含む表では、従業員名列に値としてNULLは指定できません。同様に、このような表では、同じIDを持つ2人の従業員は認められません。

Oracleデータベースでは、制約と呼ばれるデータの整合性ルールを列レベルまたは表レベルで表に適用できます。ただし、NOT NULL制約では表レベルの制約は適用できません。制約に違反する行の挿入または更新をしようとすると、エラーが発生し、その文はロールバックされます。同様に、移入した表に新しい制約を適用する場合も、既存の行が新しい制約に違反していると、エラーが発生します。

表レベルで適用できる制約タイプは、次のとおりです。

制約は作成可能で、ほぼすべての場合、様々な状態を指定して変更できます。オプションには、使用可能または使用不可(行が追加または変更された場合、制約を確認するかどうか)および遅延または即時(制約のチェックをトランザクションの終了時にするか、文の終了時にするか)をそれぞれ指定します。

参照:

制約の詳細は、『Oracle Database概要』を参照してください。 

記憶域属性

ローカル管理表領域に表を作成し、自動セグメント領域管理を使用する場合は、Oracle固有の記憶域アルゴリズムを使用して表を作成する必要があります。ディクショナリ管理表領域に表を格納する必要がある場合は、その表に対し記憶域特性を設定できます。

インストールした事前構成済データベースには、ディクショナリ管理表領域は含まれません。したがって、これらのオプションについてここでは説明しませんが、使用する必要がある場合は、『Oracle Database管理者ガイド』および『Oracle Database概要』を参照してください。

表作成時の他の考慮事項

「表の作成」ページを使用して表を作成する場合は、「SQL表示」ボタンをクリックして、構成済のSQL文を表示できます。このオプションを使用すると不完全なSQL文も表示されるため、このオプションを使用してSQL文を表示する場合は、入力を完了しておく必要があります。

また、既存の表と同じ構造および内容を使用して新しい表も作成できます。この方法は、本番の表と類似するテスト表の作成に役立ちます。このような表を作成するには、「次を使用して定義」リストで「SQL」を選択して、CREATE TABLE ASボックスで始まるSQL文を完成させます。問合せには、元の表のすべての列および行を含めるか、SQL SELECT文を使用して、必要な行を特定したり、列名を列の別名に変更したり、特定の列を除外することができます。

新しい表には、ユーザー定義型で定義した列を含めることができます。ユーザー定義型は、CREATE TYPE文を使用して作成します。詳細は、『Oracle Database SQLリファレンス』を参照してください。

1つ以上のLOB列を含む表を作成する場合、表のLOBコンポーネントに対して異なる記憶域オプションを定義できます。ほとんどの場合、デフォルトの設定を使用する必要があります。それらを変更する場合は、「デフォルトのLOB属性の設定」をクリックして、「デフォルトのLOB属性の設定」ページでエントリを指定します。また、列名を選択し、「拡張属性」をクリックして、1つの列に対するLOB属性も設定できます。

複数のパーティションを持つ表も作成できます。各パーティションは、1つの表で多数の特性を持つ別々のデータベース・オブジェクトですが、各パーティションには、その親表として同じ列定義が含まれます。非常に大きな表をパーティション化すると、各パーティションを単独で構成できるため、表の管理を簡単にできます。また、パーティション化した表に対する一部の操作では、パーティション化しない表に対する操作と比較すると、より効率が向上する場合があります。これは、パーティション化しない表と比較すると、パーティションがより多くのディスク・ドライブに分散されるためであり、また、特定のSQL文を処理する場合、オプティマイザによって、すべてのパーティションの内容を処理する必要がないためです。

問合せは頻繁に実行されるが、更新はあまりされない大きな表を持つアプリケーション(特にデータ・ウェアハウス)に対して、圧縮された表を作成できます。圧縮された表は、圧縮されない表(デフォルト)より必要なディスク記憶域が小さくなります。圧縮された表を作成するには、独自のCREATE TABLE文を記述する必要があります。これは、このオプションがEnterprise Managerで使用できないためです。

参照:

他の表タイプの設計および管理に関する考慮事項は、『Oracle Database概要』および『Oracle Database管理者ガイド』を参照してください。表を作成する構文は、『Oracle Database SQLリファレンス』を参照してください。 

表の表示

Enterprise Managerを使用して、指定したスキーマ内のすべての表を表示できます。表定義も表示できます。

表を表示するには、次の手順を実行します。

  1. 「管理」ページで、「」をクリックします。

    「表」プロパティ・ページが表示されます。

  2. スキーマ」ボックスに、スキーマ名を入力します。たとえば、SYSと入力します。または、「スキーマ」ボックスの横にある懐中電灯アイコンをクリックしてスキーマを検索します。

  3. スキーマ内のすべての表を検索する場合は、「オブジェクト名」を空白のままにしておきます。それ以外の場合は、オブジェクト名を入力するか、または懐中電灯アイコンをクリックして検索します。

  4. 実行」をクリックします。

    指定したスキーマ内の表が表示されます。図8-3に、SYSスキーマ内の表の一部を示します。

    図8-3    「表」のプロパティ・ページ


    画像の説明

  5. 結果リストから、表を選択します。「ビュー」をクリックするか、または「表名」列のリンクをクリックして表定義を表示します。

    「表の表示: table_name」ページが表示されます。

表データの表示

表名および表定義を表示するのみでなく、表に格納されたデータおよびそのデータの表示に使用するSQL文も表示できます。また、SQL文を変更して結果セットを変更することもできます。

表データを表示するには、次の手順を実行します。

  1. 「表の表示」の説明に従って表を検索します。たとえば、hrスキーマ内の表を検索します。

  2. 結果リストから、データを表示する表を選択します。たとえば、EMPLOYEESを選択します。

  3. アクション」リストから、「データの表示」を選択します。

  4. 実行」をクリックします。

    「表のデータの表示: table_name」ページが表示されます。図8-4に、hr.employeesのページの一部を示します。「問合せ」ボックスには、表のデータを表示するために実行したSQL問合せが表示されています。「結果」セクションには、表のデータが表示されています。

    図8-4    「表のデータの表示」ページ


    画像の説明

  5. 列内のデータをソートするには、列名をクリックします。

  6. 問合せを変更するには、「再問合せ」をクリックします。

    「表の再問合せ: table_name」ページが表示されます。このページで、表示する列を選択できます。また、SQL文の結果を限定するWHERE句を指定することもできます。

また、SELECT文を使用した独自のSQL問合せを記述して、表の内容を表示することもできます。いずれかの「データベース」プロパティ・ページの「関連リンク」セクションで「i SQL*Plus」をクリックしてi SQL*Plusセッションを開始すると、SQL文を実行できます。SELECT文とそのオプションの詳細は、『Oracle Database SQLリファレンス』を参照してください。

表の作成

Enterprise Managerを使用して、表を作成できます。これは、データベース管理者またはCONNECTロールを持つユーザーとして行います。

新しい表のサイズの見積り

Enterprise Managerを使用した表の作成中に、表のサイズを見積もることができます。この操作によって、表を格納するデータベースまたは使用可能なディスクに十分な容量があるかどうかを判断できます。容量が不十分であっても表は作成できますが、必要な記憶域を確保するまで、表は移入できません。

表のサイズを見積もるには、次の手順を実行します。

  1. 「管理」ページの「データベース・オブジェクト」セクションで、「」クリックします。

    「表」ページが表示されます。

  2. 作成」をクリックします。

    「表を作成: 表編成」ページが表示されます。

  3. 標準、ヒープ構成」を選択し、「続行」をクリックします。

    「表の作成」ページが表示されます。

  4. 表名、スキーマ名、列名およびデータ型を入力し、「表サイズの見積り」をクリックします。

    「表サイズの見積り」ページが表示されます。

  5. 予測される行数」に、表内の予測される行数を入力し、「表サイズの見積り」をクリックします。

    Enterprise Managerによって、見積り値(MB)が戻されます。

表の作成: 例

次の例では、第7章「ユーザーおよびセキュリティの管理」で作成したMYUSERスキーマに、purchase_ordersという表を作成します。この表には、po_numberpo_descriptionpo_dateおよびpo_item列を含めます。

MYUSERスキーマに表を作成するには、手順を実行します。

  1. 「管理」ページの「データベース・オブジェクト」セクションで、「」クリックします。

    「表」ページが表示されます。

  2. 作成」をクリックします。

    「表を作成: 表編成」ページが表示されます。

  3. 標準、ヒープ構成」を選択します。

  4. 続行」をクリックします。

    「表の作成」ページが表示されます。詳細は、図8-5「「表の作成」ページ」を参照してください。

    図8-5    「表の作成」ページ


    画像の説明

  5. 名前」ボックスに、表名としてpurchase_ordersを入力します。「スキーマ」ボックスに、MYUSERと入力します。「表領域」ボックスで、デフォルトをそのまま使用します。

  6. 「列」セクションで、データ型とともに次の列を入力します。

    • po_idNUMBER

    • po_dateDATE

    • po_descVARCHAR2(200)

    • po_itemVARCHAR2(100)

    スケール」、「NOT NULL」および「デフォルト値」は空白のままにできます。


    注意:

    パーティションを持つ表を作成する場合は、この手順で「パーティション」をクリックして作成します。 


  7. OK」をクリックします。

    表が正常に作成されたことを示す更新メッセージが表示されます。

    参照:

    詳細は、「表」を参照してください。 

表属性の変更

Enterprise Managerを使用して、列を追加および削除したり、制約を追加することができます。次の項では、列を追加する方法と、表制約を追加および削除する方法について説明します。

列の追加

この例では、po_item2という新しい列を追加して、purchase_orders表を変更します。

po_item2列を追加するには、次の手順を実行します。

  1. 」ページで、「スキーマ」ボックスにMYUSERと入力して、「実行」をクリックします。

    結果リストに、以前作成したPURCHASE_ORDERS表が表示されます。

  2. PURCHASE_ORDERS表を選択して、「編集」をクリックします。

    「表の編集: MYUSER.PURCHASE_ORDERS」ページが表示されます。

  3. 空白になっている使用可能な最初の「名前」ボックスに、新しい列名としてpo_item2と入力します。「データ型」リストから、「VARCHAR2」を選択します。「サイズ」ボックスに、100と入力します。「スケール」、「NOT NULL」および「デフォルト値」は空白のままにできます。

  4. 適用」をクリックします。

    表が正常に変更されたことを示す更新メッセージが表示されます。

    参照:

    詳細は、「表」を参照してください。 

列の削除

この例では、列を削除する方法について説明します。ここでは、「列の追加」PURCHASE_ORDERS表に追加されたpo_item2列を削除します。

po_item2列を削除するには、次の手順を実行します。

  1. 」ページで、「スキーマ」ボックスにMYUSERと入力して、「実行」をクリックします。

    結果リストに、以前作成したPURCHASE_ORDERS表が表示されます。

  2. PURCHASE_ORDERS表を選択して、「編集」をクリックします。

    「表の編集: MYUSER.PURCHASE_ORDERS」ページが表示されます。

  3. 「列」セクションで、削除する列を選択します。この場合は、po_item2を選択します。

  4. 削除」をクリックします。

    削除した列(po_item2)に関する情報が含まれていた行は空白になり、表が正常に変更されたことが示されます。

新しい表制約の作成

Enterprise Managerを使用して、表に制約を追加できます。この例では、発注書が常にIDとともに入力され、発注書ID(po_id)が表の主キーになるルールを適用するとします。この列に、NOT NULL制約および主キー制約を追加します。


注意:

表の作成中に制約を追加することもできます。 


purchase_orders表にこれらの制約を追加するには、次の手順を実行します。

  1. 」ページで、「スキーマ」ボックスにMYUSERと入力して、「実行」をクリックします。

    結果リストに、以前作成したPURCHASE_ORDERS表が表示されます。

  2. PURCHASE_ORDERS表を選択して、「編集」をクリックします。

    「表の編集: MYUSER.PURCHASE_ORDERS」ページが表示されます。

  3. po_id列を選択し、「NOT NULL」を選択してこの列にNOT NULL制約を適用します。

  4. 適用」をクリックします。

    確認メッセージが表示されます。

  5. 制約」をクリックします。

    「制約」プロパティ・ページが表示されます。

  6. ドロップダウン・メニューから「PRIMARY」を選択し、「追加」をクリックします。この操作によって、主キー制約が適用されます。

    主キー制約を追加するページが表示されます。

  7. 使用可能な列」リストでPO_IDを選択し、「選択した列」リストに移動します。制約のデフォルト設定を保持するために、このページの「属性」領域のチェックボックスは変更しないでください。

  8. 続行」をクリックします。

    「制約」ページに新しい制約が表示されます。

  9. 適用」をクリックします。

    確認メッセージが表示されます。「表の表示」ページに移動して、新しい制約を表示できます。

    参照:

    詳細は、「表レベル制約」を参照してください。 

既存の制約の変更

たとえば、使用可能から使用不可へと、既存の制約の状態を変更できます。この例では、前述の項「新しい表制約の作成」で作成した主キー制約を使用します。

制約を無効にするには、次の手順を実行します。

  1. 」ページで、「スキーマ」ボックスにMYUSERと入力して、「実行」をクリックします。

    結果リストに、以前作成したPURCHASE_ORDERS表が表示されます。

  2. PURCHASE_ORDERS表を選択して、「編集」をクリックします。

    「表の編集: MYUSER.PURCHASE_ORDERS」ページが表示されます。

  3. 制約」をクリックします。

    「制約」プロパティ・ページが表示されます。

  4. 「制約」表から主キー制約を含む行を選択し、「編集」をクリックします。

    「PRIMARY制約の編集」ページが表示されます。

  5. 「属性」セクションで、「無効」を選択します。

  6. 続行」をクリックします。

  7. 適用」をクリックします。

    確認メッセージが表示されます。主キー制約が無効になっていることが「無効」列に示されます。

制約の削除

Enterprise Managerを使用して、表から制約を削除できます。制約を削除する前に、使用不可にする必要はありませんが、最初に制約を使用不可にして、その制約を削除できるかどうかを判断できます。親表の制約によって子表の外部キー制約が実行される場合、および子表に依存行が含まれている場合は、この制約を無効にしたり、削除することができないことがあります。

この例では、「新しい表制約の作成」で作成した主キー制約を削除します。

制約を削除にするには、次の手順を実行します。

  1. 」ページで、「スキーマ」ボックスにMYUSERと入力して、「実行」をクリックします。

    結果リストに、以前作成したPURCHASE_ORDERS表が表示されます。

  2. PURCHASE_ORDERS表を選択して、「編集」をクリックします。

    「表の編集: MYUSER.PURCHASE_ORDERS」ページが表示されます。

  3. 制約」をクリックします。

    「制約」プロパティ・ページが表示されます。

  4. 「制約」表から主キー制約を含む行を選択し、「削除」をクリックします。

  5. 適用」をクリックします。

    確認メッセージが表示されます。

表へのデータのロード

Enterprise Managerを使用すると、バッチで表にデータをロードできます。バッチによるロードは、データが多い場合に役立ちます。ファイル・システムからデータをロードできます。また、ファイルにデータをエクスポートすることもできます。

Enterprise Managerでデータをロードする場合は、カンマで区切られたデータファイルを使用できます。また、Enterprise Managerでは制御ファイルを自動的に作成できます。SQL*Loader制御ファイルによって、Oracleでのデータのロード方法が指定されます。これは、データベースの制御ファイルとは異なります。

次の例では、「表の作成: 例」MYUSERを使用して作成したpurchase_orders表にデータをロードします。簡略化するために、この例では3つの行のみをロードします。制御ファイルおよびデータファイルは別のものですが、このロード方法では、ファイルの概念は同じです。

この例では、データベースのファイル・システムまたはクライアント・ホストにload4.datというデータ・ファイルを作成する必要があります。ファイルの内容は次のとおりです。

1, 25-MAY-2005, Office Equipment, Optical Mouse
2, 18-JUN-2005, Computer System, Dell Laptop
3, 26-JUN-2005, Travel Expense, Car Rental

myuser.purchase_orders表にデータファイルをロードするには、次の手順を実行します。

  1. 「管理」ページの「行データの移動」セクションで、「ユーザー・ファイルからのデータのロード」をクリックします。

    「データのロード: 制御ファイルの生成または既存の制御ファイルの使用」ページが表示されます。

  2. 制御ファイルの自動生成」を選択します。また、ホスト・マシンのホスト資格証明(ユーザー名およびパスワード)も入力します。「続行」をクリックします。

    「データのロード: データファイル」ページが表示されます。

  3. データファイルはデータベース・サーバー・マシン上にあります」を選択し、データファイルのパスを入力します。また、クライアント・ホストにデータファイルを作成した場合は、「データファイルはブラウザ・マシン上にあります」を選択し、そのファイルのパスを入力します。「次へ」をクリックします。

    「データのロード: 表およびファイル形式」ページが表示されます。このページには、データファイルの内容が表示されます。

  4. 表名」に、データの宛先表を指定します。myuser.purchase_ordersと入力し、「次へ」をクリックします。

    「データのロード: ファイル形式属性」ページが表示されます。

  5. すべてのデフォルト値をそのまま使用します。この例では、カンマをデリミタとして使用します。「次へ」をクリックします。

    「データのロード: ロード・メソッド」ページが表示されます。

  6. デフォルトの「従来型パス」をロード・メソッドとして使用します。データが多い場合は、「ダイレクト・パス」を選択できます。「次へ」をクリックします。

    「データのロード: オプション」ページが表示されます。

  7. 「オプション・ファイル」で、「ログ情報を格納するログ・ファイルを生成」をそのまま選択します。デフォルトのファイル名およびパスをそのまま使用するか、別の名前やパスを入力します。このページには、ロードする行の数を制限するオプションがあります。この例では、3行のみをロードするため、このボックスは選択しません。「次へ」をクリックします。

    「データのロード: スケジュール」ページが表示されます。

  8. ジョブ名」および「説明」に値を入力します。すぐにジョブを実行するには、「即時」を選択します。「次へ」をクリックします。

    「データのロード: レビュー」ページが表示されます。このページを使用すると、ファイル名およびロード方法を確認できます。ロード中の制御ファイルも表示できます。変更がある場合は、「戻る」ボタンをクリックします。

  9. ジョブの発行」をクリックして、ロードを開始します。

    ジョブが正常に作成されたことを確認する「ジョブ・アクティビティ」ページが表示されます。

  10. ジョブ名を検索してステータスを表示します。

    「ジョブ・アクティビティ」ページには、ジョブ情報およびジョブが正常に実行されたことが表示されます。詳細は、「ステータス」の下のリンクをクリックしてください。

  11. 「表」ページに移動し、myuser.purchase_orders表を検索し、実行する操作として「データの表示」を選択すると、ロードしたデータを確認できます。詳細は、図8-6「表のデータの表示: MYUSER.PURCHASE_ORDERS」を参照してください。

    図8-6    表のデータの表示: MYUSER.PURCHASE_ORDERS


    画像の説明

    参照:

    詳細は、「表」を参照してください。 

表の削除

表やその内容が不要になった場合、Enterprise Managerを使用して表を削除できます。表のデータは、本当に不要であることを確認した後で削除してください。削除文を実行した後でレコードを取得することはできますが、困難であり時間がかかります。

この手順をテストするには、「表の作成」の手順に従ってMYUSERスキーマにtestという表を作成します。VARCHAR2(1)型のcolという列が1つ含まれているtest表を作成します。

表を削除にするには、次の手順を実行します。

  1. 」ページで、「スキーマ」ボックスにMYUSERと入力して、「実行」をクリックします。

    結果リストに、作成したtest表が表示されます。

  2. TEST表を選択し、「オプションを指定して削除」をクリックします。

    「オプションを指定して削除」ページが表示されます。

  3. 表定義、そのすべてのデータおよび依存オブジェクトを削除します(DROP)」を選択します。

  4. すべての参照整合性制約を削除します(CASCADE CONTRAINTS)」を選択します。

  5. はい」をクリックします。

    表が正常に削除されると、「表の編集」ページに確認メッセージが表示されます。

索引の管理

次の項では、索引を作成および管理する方法について説明します。

索引

索引は、表に関連付けられたオプションの構造です。これらを作成すると、問合せのパフォーマンスを向上できます。このマニュアルでも、索引を使用すると特定の情報をすばやく見つけることができます。それと同様に、Oracleの索引を使用すると表データにすばやくアクセスできます。

索引は、表の1つ以上の列に対して作成できます。作成された索引は、Oracleにより自動的にメンテナンスされ、使用されます。表データに対する変更(新しい行の追加、行の更新または削除など)は、関連するすべての索引にも自動的に取り込まれます。その操作は、ユーザーに対して透過的です。

一部の索引は、表に定義する制約を使用して暗黙的に作成することもできます。たとえば、値が一意である必要があるという制約を持つ列は、Oracleによって一意キー索引が作成されることになります。

「管理」ページの「データベース・オブジェクト」セクションの「索引」リンクをクリックすると、「索引」ページが表示されます。このページは、図8-3に示した「表」ページと内容および機能が類似しています。

索引とパフォーマンス

他の索引を追加する前に、データベースのパフォーマンスを検証しておく必要があります。これによって、新しい索引を追加した後、パフォーマンスを比較できます。

通常、索引は、単一の既存行または少数の既存行の操作に必要な問合せやSQL文のための値です。ただし、索引が多すぎると、行を追加、変更または削除する文のオーバーヘッドの処理が増加する可能性があります。

索引を増やすとアプリケーションのパフォーマンスが向上するかどうかを確認するために、Enterprise ManagerでSQLアクセス・アドバイザを実行できます。詳細は、第10章「データベースの監視およびチューニング」SQLアクセス・アドバイザの使用を参照してください。

索引タイプ

索引は、様々な方法で分類できます。次の項に、主要なオプションを示します。

標準(Bツリー)およびビットマップ

標準の索引(Bツリー索引)には、索引キーの各値に対するエントリと、その値が格納されている行へのアドレスが含まれます。Bツリー索引はデフォルトで、Oracleデータベースでは、最も一般的な索引です。

ビットマップ索引は、値とその値が格納される可能性がある行のアドレスを簡潔に示すためにビットで構成される文字列を使用します。ビットマップ索引は、Bツリー索引より簡潔で、一部の検索をより効率的に実行できます。ただし、一般的な使用では、ビットマップ索引は表の行操作に、より多くのオーバーヘッドが必要なため、主にデータ・ウェアハウス環境で使用されます。データ・ウェアハウス環境の詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。

昇順および降順

索引を使用したデフォルトの検索では、文字データはASCII値でソートされ、低い値から高い値へと検索され、数値データは小さい数から大きな数へと、日付は古い値から新しい値へと検索されます。このデフォルトの動作は、昇順索引で作成された索引で実行されます。降順オプションで前述の索引を作成すると、索引の検索順序を逆にして実行できます。

列およびファンクション

通常、索引エントリは表の列に格納されている値に基づいて作成されます。このような索引を列索引と呼びます。また、索引付けされる値が表のデータに基づくファンクション索引を作成できます。たとえば、大文字/小文字が混在している文字データを検索する場合、ファンクション索引を使用すると、文字データをすべて大文字と仮定して値が検索されます。

単一列および連結

1つの列のみ(単一列索引)または複数の列(連結索引)で索引を作成できます。連結索引は、すべての列が頻繁に実行されるSQL文のWHERE句に含まれる可能性がある場合に有効です。

連結索引では、索引で使用される列を慎重に定義する必要があります。重複が最も少ない値をfirst、次に重複が少ない値をsecondなどのように定義します。重複する値が多く含まれている列またはNULL値を持つ行が多く含まれている列は、索引定義に含めないか、または索引定義で最後に定義する列にする必要があります。

非パーティションおよびパーティション

表の場合と同様に、パーティションを持つ索引またはパーティションを持たない索引を作成できます。関連する表もパーティション化されていて、索引が表と同じパーティション・スキームを使用している場合(ローカル索引)は、ほぼすべての状況で索引のパーティション化が役立ちます。索引は、基礎となる表のようにパーティション化する必要はありません。パーティション化した表でパーティション化しない(グローバル)索引も作成できます。

参照:

他の索引タイプの設計および管理に関する考慮事項は、『Oracle Database概要』および『Oracle Database管理者ガイド』を参照してください。索引を作成する構文は、『Oracle Database SQLリファレンス』を参照してください。 

索引の表示

データベースに存在する索引を検索するには、「索引」ページの検索オプションを使用します。

索引を表示するには、次の手順を実行します。

  1. 「管理」ページで、「索引」をクリックします。

    「索引」ページが表示されます。

  2. 検索条件」リストから、「索引名」を選択して名前で索引を検索します。

    また、「表名」を選択して、索引が構築されている表の名前を検索できます。

  3. スキーマ」ボックスに、スキーマ名を入力します。たとえば、SYSと入力します。または、「スキーマ」ボックスの横にある懐中電灯アイコンをクリックしてスキーマを検索します。

  4. スキーマ内のすべての索引を検索する場合は、「オブジェクト名」を空白のままにしておきます。それ以外の場合は、オブジェクト名を入力するか、または懐中電灯アイコンをクリックして検索します。

  5. 実行」をクリックします。

    指定したスキーマ内の索引が表示されます。

  6. 結果リストから表を選択した後、「ビュー」をクリックするか、または「索引」列のリンクをクリックして表定義を表示します。

    「索引の表示: index_name」ページが表示されます。「一般」領域に、索引が作成された状態、列など、索引に関する基本的な情報が表示されます。別の領域には、索引によって使用される領域の情報および索引の定義に使用されたオプションの情報が表示されます。

索引の作成

Enterprise Managerを使用して索引を作成できます。索引を作成するには、索引付けする1つ以上の列および作成する索引タイプを指定します。

次の例では、SH.PRODUCTS表のSUPPLIER_ID列に標準のBツリー索引を作成します。この表は、サンプル・スキーマに含まれています。

索引を作成するには、次の手順を実行します。

  1. 「管理」ページの「データベース・オブジェクト」セクションで、「」クリックします。

    「表」ページが表示されます。

  2. スキーマ」ボックスにshと入力し、「実行」をクリックします。

    結果リストに、shスキーマ内の表が表示されます。

  3. PRODUCTS表を選択し、「アクション」リストから「索引の作成」を選択します。「実行」をクリックします。

    「索引の作成」ページが表示されます。

  4. 次の情報を入力します。

    • 名前」ボックスに、PRODUCTS_SUPPLIER_IDXと入力します。

    • 表領域」の場合は、デフォルトをそのまま使用します。

    • 索引タイプ」の場合は、「標準 - Bツリー」を選択します。

    • 表の列」リストで、「順序」列に1を入力し、SUPPLIER_ID列を選択します。

    • ソート順」の場合は、デフォルトの選択肢「ASC」をそのまま使用します。

  5. OK」をクリックして、索引を作成します。

    「索引」ページに確認メッセージが表示されます。新しい索引は「結果」にリストされます。

    参照:

    詳細は、「索引」を参照してください。 

索引の削除

索引が不要になった場合は、Enterprise Managerを使用して削除できます。

この例では、以前作成した索引PRODUCTS_SUPPLIER_IDXを削除します。

索引を削除するには、次の手順を実行します。

  1. 「管理」ページで、「索引」をクリックします。

    「索引」ページが表示されます。

  2. 検索条件」リストから、「索引名」を選択して名前で索引を検索します。「スキーマ」に、shと入力します。「オブジェクト名」に、PRODUCTS_SUPPLIER_IDXと入力します。

  3. 実行」をクリックします。

    結果ページに、索引PRODUCTS_SUPPLIER_IDXが表示されます。

  4. 索引PRODUCTS_SUPPLIER_IDXを選択し、「削除」をクリックします。

    確認ページが表示されます。

  5. はい」をクリックして、索引を削除します。

    「表の編集」ページに、索引が正常に削除できたかどうかを示す確認メッセージが表示されます。


    注意:

    制約を実行するために現在使用されている索引は、削除できません。索引の削除を試行しても削除されない場合は、制約を使用不可にするか、削除してから、索引を削除します。 


ビューの管理

次の項では、ビューについて説明します。

ビュー

ビューは、1つ以上の表または他のビューに含まれているデータの表現がカスタマイズされたものです。ストアド・クエリーと考えることもできます。ビューに実際のデータは格納されていません。かわりに、ビューの基礎となる表からデータを導出します。これらの表をビューの実表と呼びます。

表の場合と同様に、ビューに対しても、いくつかの制限付きで、問合せ、更新、挿入および削除を実行できます。ビューに対して実行する操作は、すべてビューの実表にも影響します。ビューは事前に定義された行と列の集合のみにアクセスを限定して、表のセキュリティ・レベルを強化します。また、データの複雑さを隠し、複雑な問合せを格納します。

SYSスキーマには多くの重要なビューがあります。データ・ディクショナリ・ビューは、データ・ディクショナリが変更された場合(たとえば、新しく表が作成されたり、ユーザーに新しい権限が付与された場合など)のみ変更されるため、静的と呼ばれます。

多くのデータ・ディクショナリ表には、3つの対応するビューがあります。

単一のデータ・ディクショナリ表に対応するALL_DBA_およびUSER_ビューの列は、通常はほとんど同じです。

実行中のデータベース・アクティビティを監視するビューは、動的パフォーマンス・ビューと呼ばれます。管理者のみが使用できる動的パフォーマンス・ビューは、名前がV$から始まり、V$ビューと呼ばれることがあります。

SYS スキーマのビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

ビューの表示

Enterprise Managerを使用して、指定したスキーマ内のビューを表示できます。ビュー定義も表示できます。

ビューを表示するには、次の手順を実行します。

  1. 「管理」ページで、「ビュー」をクリックします。

    「ビュー」プロパティ・ページが表示されます。

  2. スキーマ」ボックスに、スキーマ名を入力します。たとえば、SYSと入力します。または、「スキーマ」ボックスの横にある懐中電灯アイコンをクリックしてスキーマを検索します。

  3. スキーマ内のすべてのビューを検索する場合は、「オブジェクト名」を空白のままにしておきます。それ以外の場合は、オブジェクト名を入力するか、または懐中電灯アイコンをクリックして検索します。

  4. 実行」をクリックします。

    SYSスキーマ内のビューが表示されます。これらのビューを使用すると、データ・ディクショナリの情報や実行中のデータベース・アクティビティを参照できます。SYSスキーマのビューは、多数のOracle Enterprise Managerのページの情報のソースでもあります。

  5. 結果リストからビューを選択した後、「ビュー」をクリックするか、または「ビュー名」列のリンクをクリックしてビュー定義を表示します。

    「ビュー: view_name」ページが表示されます。

ビューの作成: 例

次の例では、hr.employees表を基にビューを作成します。この表は、サンプル・スキーマに含まれています。このビューは、employee_idが100のマネージャKingのすべての直属の部下をフィルタ処理します。この目的は、このビューによって、マネージャKingに関する情報を適切に表示する一方で、hr.employees表に対するセキュリティ・レベルも強化することです。

ビューを作成するには、次の手順を実行します。

  1. 「管理」ページで、「ビュー」をクリックします。

    「ビュー」プロパティ・ページが表示されます。

  2. 作成」をクリックします。

    「ビューの作成」ページが表示されます。

  3. 次の情報を入力します。

    • 名前」に、KING_VIEWと入力します。

    • スキーマ」に、HRと入力します。

    • 問合せテキスト」に、次のSQL文を入力します。

      SELECT employee_id, first_name, last_name, email, phone_number, hire_date, 
             job_id, salary, commission_pct, manager_id, department_id 
      FROM   hr.employees 
      WHERE  manager_id = 100
      
      
  4. OK」をクリックします。

    「ビュー」ページに確認メッセージが表示されます。新しいビューが結果セクションに表示されます。

  5. KING_VIEWを選択した後、「アクション」リストから「データの表示」を選択します。

  6. 実行」をクリックします。

    「ビューのデータの表示: HR.KING_VIEW」ページが表示されます。「結果」セクションに、ビューで選択されたデータが表示されます。

ビューの削除

ビューが不要になった場合は、Enterprise Managerを使用して削除できます。

この例では、以前作成したビューHR.SKING_VIEWを削除します。

ビューを削除にするには、次の手順を実行します。

  1. 「管理」ページで、「ビュー」をクリックします。

    「ビュー」ページが表示されます。

  2. スキーマ」ボックスに、hrと入力します。「オブジェクト名」に、SKING_VIEWと入力します。

  3. 実行」をクリックします。

    結果ページに、ビューSKING_VIEWが表示されます。

  4. SKING_VIEWを選択し、「削除」をクリックします。

    確認ページが表示されます。

  5. はい」をクリックして、ビューを削除します。

    「ビュー」ページに、ビューが正常に削除できたかどうかを示す確認メッセージが表示されます。

データベース常駐型プログラム・ユニットの管理

Oracleには、データベースにプログラムを格納する機能があります。この機能を使用すると、頻繁に必要になるコードを1度だけ書き込んでテストした後は、そのコードが必要なすべてのアプリケーションからアクセスが可能になります。また、データベース常駐型プログラム・ユニットでは、コードが呼び出されると同じ処理がデータに適用されるため、アプリケーションの開発を容易にし、開発者間に一貫性を提供します。

データベース常駐型プログラムは、PL/SQLまたはJavaで記述できます。Enterprise Managerを使用して、PL/SQLパッケージ、プロシージャ、トリガー、ファンクション、Javaのソース、Javaのクラスなどのソース・タイプを管理できます。管理の内容には、これらのソース・タイプに対する作成、コンパイル、シノニムの作成、権限の付与、依存性の表示などが含まれます。これらの操作は、図8-7に示す、「管理」ページの「プログラム」セクションのリンクをクリックして実行できます。

図8-7    「プログラム」セクション


画像の説明

このマニュアルでは、PL/SQLプログラム・ユニットの主要なタイプについて説明します。次の項では、次に示す内容を説明します。

プログラム・ユニットの作成および管理は、アプリケーション開発者の主要タスクです。ただし、これらのオブジェクトを管理する場合にDBAの支援が必要になる場合があります。スキーマに変更を行ったことによってオブジェクトが無効になる可能性があるためです。

参照:

PL/SQLコードおよびプログラム・ユニットについては、『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。 

パッケージの管理

パッケージとは、単一のユニットに定義またはPL/SQLコードのブロック(あるいはその両方)が含まれる構造体です。パッケージの内容を起動するには、パッケージおよびその中の要素をドット表記法を使用して指定します。たとえば、ユーザーCTXSYSが所有するCTX_QUERYパッケージにあるSTORE_SQEというプロシージャを実行するには、CTXSYS.CTX_QUERY.STORE_SQE(arg1,arg2)のように指定します。arg1およびarg2は、プロシージャの2つの引数に対する値です。パッケージ化された要素名を簡単にするには、シノニムを使用します。詳細は、「他のスキーマ・オブジェクトの使用」を参照してください。

パッケージの表示

データベースに存在するパッケージを表示するには、「パッケージ」ページの検索オプションを使用します。

パッケージを表示するには、次の手順を実行します。

  1. 「管理」ページの「プログラム」セクションで、「パッケージ」をクリックします。

    「パッケージ」ページが表示されます。

  2. スキーマ」ボックスに、スキーマ名を入力します。たとえば、SYSと入力します。または、「スキーマ」ボックスの横にある懐中電灯アイコンをクリックしてスキーマを検索します。

  3. 指定したスキーマ内のすべてのパッケージを検索する場合は、「オブジェクト名」を空白のままにしておきます。それ以外の場合は、オブジェクト名を入力するか、または懐中電灯アイコンをクリックして検索します。

  4. 実行」をクリックします。

    指定したスキーマ内のパッケージが表示されます。

  5. 結果リストからパッケージを選択した後、「ビュー」をクリックするか、または「パッケージ名」列のリンクをクリックしてパッケージ定義を表示します。たとえば、DBMS_ALERTのリンクをクリックします。

    「パッケージの表示: package_name」ページが表示されます。このページには、パッケージ名、スキーマ、状態、メソッドおよびソースが表示されます。ソースには、パッケージのコードが含まれ、場合によって、次の要素が含まれます。

    • 認証情報: パッケージの内容を実行する場合、セキュリティ・スキーマを使用するかどうかを決定します。

    • プロシージャ定義: 1つ以上のプロシージャの名前および引数のリストを指定します。

    • ファンクション定義: 1つ以上のファンクションの名前、引数のリストおよび戻り型を指定します。

    • 変数定義: パッケージのユーザーがグローバルに使用できる変数を指定します。

    • その他のパブリック要素: タイプ、制約およびパッケージ・ユーザーに必要な例外などの構造を定義します。

パッケージの作成

他のデータベース・オブジェクトの場合と同様に、Enterprise Managerを使用してパッケージを作成できます。この項では、パッケージ定義の作成方法について説明します。

パッケージ定義を作成するには、次の手順を実行します。

  1. 「管理」ページの「プログラム」セクションで、「パッケージ」をクリックします。

    「パッケージ」ページが表示されます。

  2. 作成」をクリックします。

    「パッケージの作成」ページが表示されます。

  3. 名前」、「スキーマ」および「ソース」ボックスに、適切なデータを入力します。たとえば、次の情報を入力します。

    • 名前」に、test_packageと入力します。

    • スキーマ」に、hrと入力します。

    • ソース」に、パッケージ定義を入力します。パッケージ定義の詳細は、『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

  4. OK」をクリックします。

    更新メッセージによってパッケージ定義の作成が確認されます。

パッケージの編集

他のデータベース・オブジェクトの場合と同様に、Enterprise Managerを使用してパッケージを編集できます。この例では、前述の項で作成したtest_packageパッケージを編集します。

パッケージを編集するには、次の手順を実行します。

  1. 「管理」ページの「プログラム」セクションで、「パッケージ」をクリックします。

    「パッケージ」ページが表示されます。

  2. スキーマ」および「オブジェクト名」ボックスに検索基準を入力し、「実行」をクリックします。たとえば、hrスキーマ内のパッケージを検索します。

    指定したスキーマ内のパッケージが表示されます。

  3. 結果リストからパッケージを選択し、「編集」をクリックします。たとえば、TEST_PACKAGEを選択します。

    「パッケージの編集: package_name」ページが表示されます。次の操作を実行できます。

パッケージの削除

オラクル社カスタマ・サポート・センターまたはアプリケーション開発者から指示された場合など、パッケージを削除する必要がある場合があります。他のデータベース・オブジェクトの場合と同様に、Enterprise Managerを使用して実行できます。この例では、test_packageパッケージを削除します。

パッケージを削除するには、次の手順を実行します。

  1. 「管理」ページの「プログラム」セクションで、「パッケージ」をクリックします。

    「パッケージ」ページが表示されます。

  2. スキーマ」および「オブジェクト名」ボックスに検索基準を入力し、「実行」をクリックします。たとえば、hrスキーマ内のパッケージを検索します。

    指定したスキーマ内のパッケージが表示されます。

  3. 結果リストからパッケージを選択し、「削除」をクリックします。たとえば、TEST_PACKAGEを選択します。

    確認ページが表示されます。

  4. はい」をクリックして、パッケージを削除します。

    更新メッセージによって削除が確認されます。

パッケージ本体の管理

パッケージ本体には、そのパッケージに定義されたプロシージャおよびファンクションのPL/SQLコードが含まれます。Enterprise Managerでは、パッケージについても、前述の項で説明した同じ移動パスやオプションを使用して、パッケージ本体の追加(作成)、編集(変更)、コンパイルおよび削除ができます。これらのパスによって、前述の項で説明した「パッケージ本体の編集」プロパティ・ページと「パッケージの編集」プロパティ・ページ間を直接移動できます。

パッケージの開発者が、1つ以上のプロシージャまたはファンクションをラップしている場合があります。ラップすることによって、コードが読取り不能な文字列に変換されるため、他の開発者によるアプリケーションの誤使用、または競合相手によるアルゴリズムの表示が困難になります。ラップされたコードは編集できません。「パッケージ本体の編集」ページの「ソース」ボックスに、「ソース・コードはラップされているため、表示できませんでした。」というメッセージが表示され、変更には使用できません。

パッケージ本体の表示

データベースに存在するパッケージ本体を検索するには、「パッケージ本体」ページの検索オプションを使用します。

パッケージ本体を表示するには、次の手順を実行します。

  1. 「管理」ページの「プログラム」セクションで、「パッケージ本体」をクリックします。

    「パッケージ」ページが表示されます。

  2. スキーマ」ボックスに、スキーマ名を入力します。たとえば、SYSと入力します。

    または、「スキーマ」ボックスの横にある懐中電灯アイコンをクリックしてスキーマを検索します。

  3. 指定したスキーマ内のすべてのパッケージを検索する場合は、「オブジェクト名」を空白のままにしておきます。

    それ以外の場合は、オブジェクト名を入力するか、または懐中電灯アイコンをクリックして検索します。

  4. 実行」をクリックします。

    指定したスキーマ内のパッケージが表示されます。

  5. 結果リストからパッケージを選択した後、「ビュー」をクリックするか、または「パッケージ本体名」列のリンクをクリックしてパッケージ本体を表示します。たとえば、CONNECTIONINTERFACEのリンクをクリックします。

    「パッケージ本体の表示: package_name」ページが表示されます。このページには、パッケージ名、スキーマ、状態およびソースが表示されます。ソースには、パッケージのコードが含まれています。CONNECTIONINTERFACEパッケージの「ソース」ボックスに、パッケージがラップされていることが示されていることに注意してください。

スタンドアロン・サブプログラムの管理

パッケージの外部で作成されるプロシージャおよびファンクションは、スタンドアロン・サブプログラムと呼ばれます。スタンドアロン・サブプログラムの実行に必要なことは、スキーマ名およびオブジェクト名を指定することだけです。パッケージ名は必要ありません。また、パッケージ名がなくても、定期的に使用するサブプログラムにシノニムを作成することもできます。

PL/SQLプロシージャは、特定の操作を実行するサブプログラムです。プロシージャの名前、パラメータ、ローカル変数、およびそのコードが含まれ、例外を処理するBEGIN-ENDブロックを指定します。ファンクションは、値を計算するサブプログラムです。ファンクションとプロシージャは、ファンクションでは値が戻されるという点を除いて、構造的に類似しています。

Enterprise Managerを使用して、パッケージ化されたサブプログラムと同様に、スタンドアロン・サブプログラムを作成、変更、コンパイルおよび削除できます。ただし、親パッケージを持たない(つまり、Enterprise Managerにパッケージ・プロパティ・ページに対する移動パスが存在しない)場合を除きます。「管理」ページの「プログラム」セクションで、「プロシージャ」および「ファンクション」のリンクをクリックして関連プロパティ・ページに移動します。

トリガーの管理

データベース・トリガーは、データベースの表、ビューまたはイベントに関連付けられたストアド・サブプログラムです。たとえば、表に影響するINSERTUPDATEまたはDELETE文の実行前後に、Oracleで自動的にトリガーを起動できます。

参照:

トリガーの使用および作成の詳細は、『Oracle Databaseアプリケーション開発者ガイド-基礎編』および『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。 

トリガーは、Enterprise Managerを使用して管理できます。トリガーには、「管理」ページの「プログラム」セクションの「トリガー」をクリックして開くことができる独自のプロパティ・ページがあります。「トリガー」プロパティ・ページで、新しいトリガーの作成や既存のトリガーの表示、編集および削除を行うことができます。

トリガーの作成」および「トリガーの編集」プロパティ・ページは、パッケージ、パッケージ本体およびスタンドアロン・サブプログラムの対応するページに類似しています。次の違いに注意してください。

トリガーの作成、編集およびコンパイルは、データベースPL/SQLユニットと同様です。トリガーは、表のトリガーDMLによって自動的に実行されるため、直接実行する方法はありません。

他のスキーマ・オブジェクトの使用

次に示すような他のスキーマ・オブジェクトは、Enterprise Managerを使用して管理できます。

スキーマ: Oracle by Example Series

Oracle by Example(OBE)には、このマニュアルに関するシリーズが含まれています。このOBEでは、この章のタスクを段階的に説明し、注釈付きのスクリーン・ショットを使用します。

スキーマのOBEを参照するには、ご使用のブラウザで次の場所を指定します。

http://www.oracle.com/technology/obe/10gr2_2day_dba/schema/schema.htm

戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引