Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ALTER &DROP Table DDL com execução imediata no banco de dados Oracle

ALTER &DROP Tabela DDL


A partir de agora, aprendemos todas as maneiras possíveis de criar uma tabela dentro de um bloco PL/SQL usando SQL dinâmico nativo. Você pode verificá-los nos dois últimos tutoriais que são o tutorial 82 e o tutorial 83.

Obrigado, Dynamic SQL por nos dar o poder de executar instruções DDL e DML em nosso bloco PL/SQL. Ok, acalme-se todos vocês da Idade da Pedra! Eu sei que o pacote DBMS_SQL ainda está lá, mas em comparação com o SQL dinâmico, acho muito complexo, sem mencionar seu desempenho lento. De qualquer forma, então

O que estamos aprendendo com este tutorial?


Neste tutorial vamos aprender como usar ALTER &DROP table DDL com a instrução Execute Immediate de SQL dinâmico nativo. Isso significa que, ao final deste tutorial, você será capaz de modificar e excluir dinamicamente um objeto de banco de dados, como uma tabela, diretamente em seu programa PL/SQL.

Por que devemos aprender isso?


Alguns podem achar o tópico irrelevante, mas não é um tópico muito importante, especialmente da perspectiva da Certificação Oracle e da Entrevista. Além disso, sendo um desenvolvedor, todos devemos ter nossos fundamentos claros, porque você nunca sabe quando precisará dele.

Então, vamos começar o tutorial, caso você ainda tenha dúvidas sinta-se à vontade para mandar uma mensagem no meu Facebook, aqui. Vamos primeiro aprender como modificar uma tabela usando ALTER TABLE com Execute Immediate of Dynamic SQL.

Como modificar dinamicamente uma tabela?


Para modificar um objeto de banco de dados, como uma tabela, usamos ALTER DDL no banco de dados Oracle. Modificar uma tabela usando ALTER DDL por meio de SQL é fácil em comparação com PL/SQL.

PL/SQL não suporta instruções DDL, DML e DQL diretamente. Para executar as instruções SQL mencionadas, precisamos usar o pacote Dynamic SQL ou DBMS_SQL. Entre esses dois, o Native Dynamic SQL (NDS) é a opção mais viável devido à sua simplicidade e desempenho otimizado. Você pode ler as vantagens do pacote NDS sobre DBMS_SQL aqui.

Portanto, a maneira mais simples de modificar dinamicamente um objeto de banco de dados como uma tabela é usar o DDL Alter Table com a instrução Execute Immediate de SQL dinâmico nativo.

Exemplo:Alter Table DDL com a instrução Execute Immediate.


Para a demonstração usaremos a mesma tabela que criamos no último tutorial. Lá criamos uma tabela com o nome tut_83 que tinha duas colunas tut_num do tipo de dados NUMBER e tut_name do tipo de dados varchar 2.

Se você está praticando comigo, então você deve ter essa tabela criada em seu esquema. Se for assim, então você está pronto para ir, caso contrário, visite o último tutorial e crie essa tabela.

Agora digamos que queremos adicionar outra coluna tut_date do tipo de dados de data a esta tabela e também usando SQL dinâmico nativo. Para fazer isso, precisamos usar o DDL ALTER TABLE com a instrução Execute Immediate.

Etapa 1:prepare a declaração DDL.


A melhor prática para escrever um programa SQL dinâmico é preparar sua instrução SQL antecipadamente.
ALTER TABLE tut_83 ADD tut_date DATE

Aqui está o ALTER TABLE DDL que usaremos para execução dinâmica. Esta instrução adicionará a coluna tut_date do tipo de dados DATE à tabela tut_83.

Você também pode assistir ao tutorial em vídeo para demonstração ao vivo do conceito.

Etapa 2:escreva o programa SQL dinâmico nativo.


Depois de ter sua instrução DDL pronta, você estará pronto para escrever o bloco PL/SQL.
SET SERVEROUTPUT ON;
DECLARE
 ddl_qry VARCHAR2(50);
BEGIN
 ddl_qry := 'ALTER TABLE tut_83
        	 ADD  tut_date DATE';
 EXECUTE IMMEDIATE ddl_qry;
END;
/  

Na execução bem-sucedida, este programa PL/SQL modificará a tabela mencionada acima. Você pode verificar a estrutura modificada da sua tabela usando o comando DESCRIBE, como este
DESCRIBE tut_83;

OU
DESC tut_83;

Isso é tudo que você tem que fazer. É assim que modificamos um objeto de banco de dados dinamicamente usando ALTER TABLE DDL com a instrução Execute Immediate. Isso também conclui a primeira parte do tutorial, agora vamos para a segunda e aprender como excluir uma tabela usando SQL dinâmico nativo.

Como excluir dinamicamente uma tabela?


Para excluir um objeto de banco de dados como uma tabela, usamos DROP DDL no Oracle Database. Como qualquer outra instrução DDL, esta também não é suportada diretamente pelo mecanismo PL/SQL. E como de costume, precisamos usar o SQL dinâmico para executar este DDL também. Vamos ver como excluir uma tabela usando Execute Immediate of Native Dynamic SQL.

Etapa 1:prepare a declaração DDL.


O DDL para excluir uma tabela é:
DROP TABLE tut_83

Este DDL excluirá a tabela tut_83 do esquema.

Etapa 2:escreva o programa PL/SQL para a tabela DROP com Execute Immediate.

SET SERVEROUTPUT ON;
DECLARE
    ddl_qry     VARCHAR2 (100);
BEGIN
    ddl_qry := 'DROP TABLE tut_83';
    EXECUTE IMMEDIATE ddl_qry;
END;
/

Portanto, a execução bem-sucedida deste programa deve eliminar a tabela tut_83, que você pode verificar facilmente usando o comando DESCRIBE, conforme mostrado acima.



Esse é o tutorial de como modificar e excluir um objeto de banco de dados usando Alter &Drop table DDL com a instrução Execute Immediate do Native Dynamic SQL no Oracle Database. Espero que tenha gostado de ler e aprendido algo novo. Por favor, compartilhe este blog em suas redes sociais com seus amigos. Você também pode se conectar comigo na minha página do Facebook para obter informações mais interessantes. Obrigado e tenha um ótimo dia!