Ändern Oracle9i Objekttabellen und Objekttypen

Hier haben Sie ein interessantes Problem. Wenn Sie ein Objekt Tisch machen, identifizieren Sie, welche Objekttyp für jede Zeile in der Objekttabelle verwendet werden soll. Die Attribute, die Sie sehen, wenn Sie in der Tabelle im Schema-Manager sehen sind eigentlich die Attribute des Objekttyps.

Sie können einige Eigenschaften der Objekttabelle ändern, wie im folgenden Abschnitt gezeigt. Hinzufügen oder Entfernen von Attributen in einer Objekttabelle muß jedoch durchgeführt werden, indem die zugrundeliegenden Objekttyp ändern, die in dem zweiten Abschnitt diskutiert wird.

Ändern Objekttabellen

Die einzigen Änderungen an den Attributen, die Sie dem Objekttisch zu machen sind

  • Ändern NULL nach NICHT NULL
  • Hinzufügen eines Standardwert
  • Hinzufügen von Einschränkungen, wie Primärschlüssel oder CHECK-Einschränkungen

Sie behandeln diese Änderungen auf die gleiche Weise, die Sie mit relationalen Tabellen tun.

Ändern Objekttypen

Wenn Sie einen Objekttyp ändern, werden die Änderungen geerbt durch die alle Objekttabellen und alle Objekttypen, die den geänderten Objekttyp verwenden.

Wenn Sie nicht sicher sind, welche Objekttyp verwendet wurde, eine Objekttabelle zu erstellen, können Sie etwas Hilfe aus der Tabelle Eigenschaftenfenster in der Schema-Manager erhalten. Um dieses Fenster anzuzeigen, gehen Sie folgendermaßen vor:

1. Starten Sie Konsole, wie zuvor in diesem Kapitel beschrieben.

2. Klicken Sie auf die Objekttabelle, die Sie interessieren.

Ein Eigenschaftenfenster für die Tabelle erscheint im rechten Fenster. Für dieses Beispiel wählen Sie die BREAD_OBJ Tabelle in der Backstube Schema. Abbildung 1 zeigt die Eigenschaften-Fenster. Beachten Sie, dass, wenn Sie aufmerksam an dem Fenster blicken, können Sie nur den Objekttyp ausmachen, die die Zeilen Objekttabelle definiert.


Abbildung 1: Machen Sie alle Anpassungen, die Sie auf Ihre Spaltendefinitionen müssen.

Um einen Objekttyp ändern, verwenden Sie SQL * Plus. Sie können hinzufügen, ändern oder ein Attribut in einem Objekttyp zu entfernen. Im Folgenden ist die Syntax für das Hinzufügen eines Attributs zu einem Objekttyp:

ALTER TYPE Typname
ADD ATTRIBUTE (attributDatenTyp)
KASKADE;

Ersetzen Typname, attribut, und Datentyp mit den Namen und Datentyp. Das KASKADE Parameter teilt Oracle9i die Änderung auf alle abhängigen Objekte und Objekttypen zu machen.

Zum Beispiel ein neues Attribut hinzufügen genannt HERSTELLER zum INGREDIENT_TYPE Objekttyp im Besitz von BÄCKEREI, verwenden Sie diesen SQL-Befehl:

-- 18_addattribute
ALTER INGREDIENT_TYPE
ADD ATTRIBUTE (HERSTELLER VARCHAR2 (40))
KASKADE;

ein Attribut ändern verwendet die gleiche Syntax wie das Hinzufügen, außer Sie ersetzen HINZUFÜGEN mit ÄNDERN.

Beispielsweise zur Modifizierung der HERSTELLER Attribut 60 Zeichen lang sein, verwenden Sie diesen Befehl ein:

-- 19_changeattribute
ALTER INGREDIENT_TYPE
ÄNDERN ATTRIBUTE (HERSTELLER VARCHAR2 (60))
KASKADE;

Wenn ein Attribut zu entfernen, verwenden Sie die folgende Syntax:

ALTER TYPE Typname
ADD ATTRIBUTE (attribut)
KASKADE;

Ersetzen Typname und attribut mit den tatsächlichen Namen. Das KASKADE Parameter teilt Oracle9i die Änderung auf alle abhängigen Objekte und Objekttypen zu machen. Beispielsweise zu entfernen, die HERSTELLER Attribut aus dem INGREDIENT_TYPE Objekttyp im Besitz von BÄCKEREI, verwenden Sie diesen SQL-Befehl:

-- 20_dropdattribute
ALTER INGREDIENT_TYPE
DROP ATTRIBUTE (Hersteller)
KASKADE;

Menü