Criando e Gerenciando Pacotes
Você pode criar e gerenciar pacotes PL/SQL.
Consulte Também: "Tutorial: Declarando Variáveis e Constantes em um Subprograma", que mostra como alterar o corpo de um pacote
Sobre a Estrutura do Pacote
Um pacote sempre tem uma especificação e, geralmente, tem um corpo. A especificação define o pacote em si e é uma API (Application Program Interface). O corpo define as consultas para os cursores declarados, e o código para os subprogramas, que são declarados na especificação do pacote.
A especificação de pacote define o pacote, declarando os tipos, variáveis, constantes, exceções, cursores e subprogramas declarados que podem ser referenciados de fora do pacote. Uma especificação de pacote é uma API (interface de programa de aplicativo): Ela tem todas as informações que programas clientes precisam para chamar seus subprogramas, mas nenhuma informação sobre sua implementação.
O corpo de pacote define as consultas para os cursores declarados e o código para os subprogramas, que são declarados na especificação do pacote (portanto, um pacote sem cursores nem subprogramas declarados não precisa ter um corpo). O corpo do package também pode definir subprogramas Locais , que não são declarados na especificação e podem ser chamados somente por outros subprogramas no pacote. O conteúdo do corpo do pacote está oculto dos programas do cliente. Você pode alterar o corpo do pacote, sem invalidar os aplicativos que chamam o pacote.
Consulte também:
-
Referência de Linguagem PL/SQL do Oracle Database para mais informações sobre a especificação do pacote
-
Referência da Linguagem PL/SQL do Oracle Database para mais informações sobre o corpo do pacote
Tutorial: Criando uma Especificação de Pacote
Este tutorial mostra como usar a ferramenta Criar Pacote para criar uma especificação para um pacote chamado EMP_EVAL, que aparece em muitos tutoriais e exemplos neste documento.
Para criar uma especificação de pacote, use a ferramenta SQL Developer CREATE PACKAGE ou a instrução DDL CREATE PACKAGE.
Etapas para criar uma especificação de pacote usando a ferramenta Create Package:
-
No quadro Conexões, expanda hr_conn.
-
Na lista de tipos de objeto de esquema, clique com o botão direito do mouse em Pacotes.
-
Na lista de opções, clique em Novo Pacote.
A janela Criar pacote é aberta. O campo Esquema tem o valor HR, o campo Nome tem o valor padrão PACKAGE1 e a caixa De seleção Adicionar Nova Origem em Letras Minúsculas está desmarcada.
-
Para Esquema, aceite o valor padrão, HR.
-
Para Nome, altere o valor PACKAGE1 para
EMP_EVAL. -
Clique em OK.
O painel EMP_EVAL é aberto, mostrando a instrução CREATE PACKAGE que criou o pacote:
CREATE OR REPLACE PACKAGE emp_eval AS /* TODO enter package declarations (types, exceptions, methods etc) here */ END emp_eval;O título do painel está em itálico, indicando que o pacote não foi salvo no banco de dados.
-
(Opcional) Na instrução CREATE PACKAGE, substitua o comentário por declarações.
Se você não fizer essa etapa agora, poderá fazer mais tarde, como em "Tutorial: Alterando uma Especificação de Pacote".
-
No menu Arquivo, selecione Salvar.
O Oracle Database compila e salva o pacote. O título do painel EMP_EVAL não está mais na fonte em itálico.
Consulte Também: Referência de Linguagem do Oracle Database PL/SQL para obter informações sobre a instrução CREATE PACKAGE (para a especificação do pacote)
Tutorial: Alterando a Especificação de um Pacote
Este tutorial mostra como usar a ferramenta Editar para alterar a especificação para o pacote EMP_EVAL, que aparece em muitos tutoriais e exemplos neste documento. Especificamente, o tutorial mostra como adicionar declarações para um procedimento, EVAL_DEPARTMENT e uma função, CALCULATE_SCORE.
Para alterar uma especificação de pacote, use a ferramenta Editar do SQL Developer ou a instrução DDL CREATE PACKAGE com a cláusula OR REPLACE.
Etapas para alterar a especificação de pacote EMP_EVAL usando a ferramenta Editar:
-
No quadro Conexões, expanda hr_conn.
-
Na lista de tipos de objeto de esquema, expanda Pacotes.
-
Na lista de pacotes, clique com o botão direito em EMP_EVAL.
-
Na lista de opções, clique em Editar.
O painel EMP_EVAL é aberto, mostrando a instrução CREATE PACKAGE que criou o pacote:
CREATE OR REPLACE PACKAGE emp_eval AS /* TODO enter package declarations (types, exceptions, methods etc) here */ END emp_eval;O título do painel não está em itálico, indicando que o pacote está salvo no banco de dados.
-
No painel EMP_EVAL, substitua o comentário por este código:
PROCEDURE eval_department ( dept_id IN NUMBER ); FUNCTION calculate_score ( evaluation_id IN NUMBER , performance_id IN NUMBER) RETURN NUMBER;O título do painel EMP_EVAL é alterado para fonte em itálico, indicando que as alterações não foram salvas no banco de dados.
-
Clique no ícone Compilar.
A especificação de package alterada é compilada e salva no banco de dados. O título do painel EMP_EVAL não está mais na fonte em itálico.
Consulte Também: Referência de Linguagem PL/SQL do Oracle Database para obter informações sobre a instrução CREATE PACKAGE com a cláusula OR REPLACE
Tutorial: Criando um Corpo de Pacote
Este tutorial mostra como usar a ferramenta Criar Corpo para criar um corpo para o pacote EMP_EVAL, que aparece em muitos exemplos e tutoriais neste documento.
Para criar um corpo de pacote, use as ferramentas SQL Developer CREATE BODY ou a instrução DDL CREATE PACKAGE BODY.
Etapas para criar um corpo para o pacote EMP_EVAL usando a ferramenta Create Body:
-
No quadro Conexões, expanda hr_conn.
-
Na lista de tipos de objeto de esquema, expanda Pacotes.
-
Na lista de pacotes, clique com o botão direito em EMP_EVAL.
-
Na lista de opções, clique em Criar Corpo.
O painel Corpo EMP_EVAL é exibido, mostrando o código gerado automaticamente para o corpo do pacote:
CREATE OR REPLACE PACKAGE BODY EMP_EVAL AS PROCEDURE eval_department(dept_id IN NUMBER) AS BEGIN -- TODO implementation required for PROCEDURE EMP_EVAL.eval_department NULL; END eval_department; FUNCTION calculate_score ( evaluation_id IN NUMBER , performance_id IN NUMBER) RETURN NUMBER AS BEGIN -- TODO implementation required for FUNCTION EMP_EVAL.calculate_score RETURN NULL; END calculate_score; END EMP_EVAL;O título do painel é em itálico, indicando que o código não está salvo no banco de dados.
-
(Opcional) Na instrução CREATE PACKAGE BODY:
-
Substitua os comentários por instruções executáveis.
-
(Opcional) Na parte executável do procedimento, exclua NULL ou substitua-o por uma instrução executável.
-
(Opcional) Na parte executável da função, substitua NULO por outra expressão.
Se você não concluir esta etapa agora, poderá fazê-la mais tarde, como em "Tutorial: Declarando Variáveis e Constantes em um Subprograma".
-
-
Clique no ícone Compilar.
O corpo do pacote alterado é compilado e salvo no banco de dados. O título do painel Corpo EMP_EVAL não está mais em itálico.
Consulte Também: Referência de Linguagem do Oracle Database PL/SQL para obter informações sobre a instrução CREATE PACKAGE BODY (para o corpo do pacote)
Eliminando um Pacote
Para eliminar um pacote (especificação e corpo), use o quadro Conexões do SQL Developer e a ferramenta Eliminar ou a instrução DDL DROP PACKAGE.
Cuidado: Não elimine o pacote EMP_EVAL—você precisa dele para tutoriais posteriores. Se quiser praticar a eliminação de pacotes, crie pacotes simples e, em seguida, elimine-os.
Etapas para eliminar um pacote usando a ferramenta Eliminar:
-
No quadro Conexões, expanda hr_conn.
-
Na lista de tipos de objeto de esquema, expanda Pacotes.
É exibida uma lista de pacotes.
-
Na lista de pacotes, clique com o botão direito do mouse no nome do pacote que será eliminado.
-
Na lista de opções, clique em Eliminar Pacote.
-
Na janela Eliminar, clique em Aplicar.
-
Na janela Confirmação, clique em OK.
Consulte Também: Referência de Linguagem PL/SQL do Oracle Database para obter informações sobre a instrução DROP PACKAGE