Modificando tabelas de objetos Oracle9i e Tipos de Objeto

Aqui você tem um problema interessante. Quando você faz uma tabela de objeto, você identificar que tipo de objeto é para ser usado para cada linha na tabela de objeto. Os atributos que você vê quando você olha para a tabela no Gerenciador de esquema são realmente os atributos do tipo de objeto.

Você pode modificar algumas características da tabela de objeto, como mostrado na seção seguinte. Adicionando ou removendo atributos em uma tabela de objetos, no entanto, deve ser realizado modificando o tipo de objeto subjacente, que é discutido na segunda seção.

Modificando tabelas de objetos

As únicas alterações nos atributos que você pode fazer para tabela de objeto são

  • Alterar NULO para NÃO NULO
  • Adicionando um valor padrão
  • restrições acrescentando, como de chave primária ou restrições de verificação

Você lidar com essas mudanças da mesma forma que você faz com tabelas relacionais.

Modificando tipos de objetos

Quando você modifica um tipo de objeto, as alterações são herdadas por todas as tabelas de objetos e todos os tipos de objetos que utilizam o tipo de objeto alterado.

Se você não tiver certeza de qual tipo de objeto foi usado para criar uma tabela de objeto, você pode obter alguma ajuda de janela de propriedades da tabela no esquema Manager. Para visualizar esta janela, siga estes passos:

1. Inicie o Console, conforme descrito anteriormente neste capítulo.

2. Clique na tabela objeto que você está interessado.

A janela de propriedades para a tabela aparece na janela da direita. Para este exemplo, selecione a tabela BREAD_OBJ no esquema padaria. A Figura 1 mostra a janela de propriedades. Observe que, se você olha fixamente para a janela, você pode apenas fazer o tipo de objeto que define as linhas da tabela objeto.


Figura 1: Fazer todos os ajustes que você precisa para suas definições de coluna.

Para modificar um tipo de objeto, use SQL * Plus. Você pode adicionar, alterar ou remover um atributo em um tipo de objeto. A seguir é a sintaxe para adicionar um atributo para um tipo de objeto:

ALTER typename TIPO
Adicionar atributo (attributename tipo de dados)
CASCATA;

Substituir typename, Nome do Atributo, e tipo de dados com os nomes e tipos de dados. o CASCATA parâmetro informa Oracle9i para fazer a mudança a todos os objetos dependentes e tipos de objetos.

Por exemplo, para adicionar um novo atributo chamado FABRICANTE ao INGREDIENT_TYPE tipo de objeto de propriedade PADARIA, usar este comando SQL:

-- 18_addattribute
ALTER INGREDIENT_TYPE
Adicionar atributo (FABRICANTE VARCHAR2 (40))
CASCATA;

Modificando um atributo usa a mesma sintaxe como a adição, a não ser que você substitua ADICIONAR com MODIFICAR.

Por exemplo, para modificar a FABRICANTE atributo a ser 60 caracteres, use este comando:

-- 19_changeattribute
ALTER INGREDIENT_TYPE
Modificar o atributo (FABRICANTE VARCHAR2 (60))
CASCATA;

Ao remover um atributo, use a seguinte sintaxe:

ALTER typename TIPO
Adicionar atributo (attributename)
CASCATA;

Substituir typename e Nome do Atributo com os nomes reais. o CASCATA parâmetro informa Oracle9i para fazer a mudança a todos os objetos dependentes e tipos de objetos. Por exemplo, para remover o FABRICANTE atributo do INGREDIENT_TYPE tipo de objeto de propriedade PADARIA, usar este comando SQL:

-- 20_dropdattribute
ALTER INGREDIENT_TYPE
ATRIBUTOS DA GOTA (fabricante)
CASCATA;

menu