Modifiera Oracle9i Objekt Tabeller och Objekttyper

February 16

Här har du ett intressant problem. När du gör ett objekt bord, du identifiera vad objekttypen som ska användas för varje rad i objekttabellen. Attributen som du ser när du tittar på tabellen i Schema Chef är faktiskt attribut objekttypen.

Du kan ändra några egenskaper hos objekttabellen, som visas i följande avsnitt. Lägga till eller ta bort attribut i ett objekt tabellen, dock måste utföras genom att modifiera den underliggande objekttypen, som diskuteras i det andra avsnittet.

Modifiera objektbord

De enda ändringarna de attribut som du kan göra till objektet tabellen är

  • Ändra NULL till NOT NULL
  • Lägga ett standardvärde
  • Lägga begränsningar, såsom primär-nyckel eller kolla begränsningar

Du hanterar dessa förändringar på samma sätt som du gör med relationstabeller.

Modifiera objekttyper

När du ändrar en objekttyp, är de förändringar ärvs av alla objektbord och alla objekttyper som använder den förändrade objekttyp.

Om du är osäker på vilken objekttyp användes för att skapa ett objekt tabell kan du få lite hjälp från bordsegenskapsfönstret i Schema Manager. Om du vill visa det här fönstret, så här:

1. Starta Console, som beskrivits tidigare i kapitlet.

2. Klicka på objektet tabell som du är intresserad av.

Ett egenskapsfönstret för tabellen visas i det högra fönstret. I det här exemplet, välj BREAD_OBJ tabellen i bageriet schemat. Figur 1 visar egenskapsfönstret. Lägg märke till att om du inbördes intensivt på fönstret, kan du bara göra ut objekttypen som definierar objekttabellrader.

Modifiera Oracle9i Objekt Tabeller och Objekttyper

Figur 1: Gör alla justeringar du behöver för att dina kolumndefinitioner.

Om du vill ändra en objekttyp, använda SQL * Plus. Du kan lägga till, ändra eller ta bort ett attribut i en objekttyp. Följande är syntaxen för att lägga ett attribut till en objekttyp:

ALTER TYPE Typename
LÄGG ATTRIBUTE (attribute datatyp)
CASCADE;

Byt Typename, attribute och datatyp med namn och datatyp. Den CASCADE parametern berättar Oracle9i att göra ändringen till alla beroende objekt och objekttyper.

Till exempel, för att lägga till en ny attribut kallas TILLVERKARE till INGREDIENT_TYPE objekttypen som ägs av bageri, använder denna SQL-kommando:

- 18_addattribute
ALTER INGREDIENT_TYPE
LÄGG ATTRIBUTE (TILLVERKARE VARCHAR2 (40))
CASCADE;

Modifiera ett attribut använder samma syntax som att lägga, förutom att du ersätta ADD med ÄNDRA.

Till exempel, för att ändra TILLVERKARE attributet vara 60 tecken lång, använd detta kommando:

- 19_changeattribute
ALTER INGREDIENT_TYPE
MODIFY EGENSKAP (TILLVERKARE VARCHAR2 (60))
CASCADE;

När du tar bort ett attribut, använder du följande syntax:

ALTER TYPE Typename
LÄGG ATTRIBUTE (attribute)
CASCADE;

Byt Typename och attribute med de riktiga namnen. Den CASCADE parametern berättar Oracle9i att göra ändringen till alla beroende objekt och objekttyper. Till exempel, för att ta bort TILLVERKARE attributet från INGREDIENT_TYPE objekttypen som ägs av bageri, använder denna SQL-kommando:

- 20_dropdattribute
ALTER INGREDIENT_TYPE
DROP ATTRIBUTE (TILLVERKARE)
CASCADE;