CREATE TABLE AS

Nome

CREATE TABLE AS -- cria uma tabela a partir dos resultados de uma consulta

Sinopse

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE nome_da_tabela [ (nome_da_coluna [, ...] ) ]
    AS consulta

Descrição

O comando CREATE TABLE AS cria uma tabela e a carrega com dados computados pelo comando SELECT, ou por um comando EXECUTE que executa um comando SELECT preparado. As colunas da tabela possuem os nomes e tipos de dado associados às colunas da saída do comando SELECT (exceto que é possível mudar os nomes das colunas fornecendo uma lista explícita de novos nomes de colunas).

O comando CREATE TABLE AS possui alguma semelhança com a criação de uma visão, mas na realidade é bastante diferente: este comando cria a nova tabela e executa a consulta apenas uma vez para fazer a carga inicial da nova tabela. A nova tabela não terá conhecimento das mudanças posteriores ocorridas nas tabelas de origem da consulta. Contrastando com este comportamento, a visão executa novamente o comando SELECT que a define sempre que uma consulta é realizada.

Parâmetros

TEMPORARY ou TEMP
Se for especificado, a tabela é criada como uma tabela temporária. Consulte o comando CREATE TABLE para obter mais detalhes.
nome_da_tabela
O nome (opcionalmente qualificado pelo esquema) da tabela a ser criada.
nome_da_coluna
O nome da coluna na nova tabela. Se os nomes das colunas não forem fornecidos, são obtidos a partir dos nomes das colunas produzidas pela consulta. Se a tabela for criada a partir de um comando EXECUTE, a lista de nomes de colunas não pode ser especificada.
consulta
Um comando de consulta (ou seja, um comando SELECT ou um comando EXECUTE que executa um comando SELECT preparado). Consulte SELECT ou EXECUTE , respectivamente, para obter a descrição da sintaxe permitida.

Observações

Este comando é funcionalmente equivalente ao SELECT INTO mas é preferível, porque é menos propenso a ser confundido com outros usos da sintaxe do comando SELECT ... INTO.

Compatibilidade

Este comando tem por base uma funcionalidade do Oracle. Não existe nenhum comando com funcionalidade equivalente no padrão SQL. Entretanto, uma combinação de CREATE TABLE com INSERT ... SELECT pode ser utilizada para produzir o mesmo resultado com um pouco mais de esforço.

Veja também

CREATE TABLE , CREATE VIEW , EXECUTE , SELECT , SELECT INTO
SourceForge.net Logo