Criando e Gerenciando Subprogramas Standalone

Você pode criar e gerenciar subprogramas PL/SQL autônomos.

Observação: Para fazer os tutoriais deste documento, você deve estar conectado ao Oracle Database como o usuário HR do SQL Developer.

Sobre Estrutura de Subprogramas

Um subprograma segue a estrutura de bloco PL/SQL; ou seja, tem:

Comentários podem aparecer em qualquer lugar no código PL/SQL. O compilador de PL/SQL ignora-os. Adicionar comentário em seu programa promover a capacidade de leitura e ajuda a entendê-lo. Um comentário de linha única começa com um hífen duplo (--) e se estende até o final da linha. Um comentário de várias linhas começa com uma barra e um asterisco (/*) e termina com um asterisco e uma barra (*/).

A estrutura de um procedimento é:

PROCEDURE name [ ( parameter_list ) ]
{ IS | AS }
  [ declarative_part ]
BEGIN  -- executable part begins
  statement; [ statement; ]...
[ EXCEPTION -- executable part ends, exception-handling part begins]
  exception_handler; [ exception_handler; ]... ]
END; /* exception-handling part ends if it exists;
        otherwise, executable part ends */

A estrutura de uma função é como a de um procedimento, exceto pelo fato de ela incluir uma cláusula RETURN e pelo menos uma instrução RETURN (e algumas cláusulas opcionais que estão além do escopo deste documento):

FUNCTION name [ ( parameter_list ) ] RETURN data_type [ clauses ]
{ IS | AS }
  [ declarative_part ]
BEGIN  -- executable part begins
  -- at least one statement must be a RETURN statement
  statement; [ statement; ]...
[ EXCEPTION -- executable part ends, exception-handling part begins]
  exception_handler; [ exception_handler; ]... ]
END; /* exception-handling part ends if it exists;
        otherwise, executable part ends */

O código que começa com PROCEDURE ou FUNCTION e termina antes de IS ou AS ser a assinatura de subprograma. As partes declarativa, executável e de tratamento de exceção compreendem o corpo de subprograma. A sintaxe do handler de exceção está em "Sobre Exceções e Handlers de Exceção".

Consulte Também: Referência da Linguagem PL/SQL do Oracle Database para mais informações sobre partes de subprogramas

Tutorial: Criando um Procedimento Independente

Este tutorial mostra como usar a ferramenta Criar Procedimento para criar um procedimento stand-alone chamado ADD_EVALUATION que adiciona uma linha à tabela EVALUATIONS.

A tabela EVALUATIONS foi criada em Exemplo 4-1.

Para criar um procedimento stand-alone, use a ferramenta SQL Developer CREATE PROCEDURE ou a instrução DDL CREATE PROCEDURE.

Etapas para criar um procedimento independente usando a ferramenta Create Procedure:

  1. No quadro Conexões, expanda hr_conn.

  2. Na lista de tipos de objeto de esquema, clique com o botão direito do mouse em Procedimentos.

  3. Na lista de opções, clique em Novo Procedimento.

    A janela Criar procedimento é aberta.

  4. Para Esquema, aceite o valor padrão, HR.

  5. Para Nome, altere PROCEDURE1 para ADD_EVALUATION.

  6. Clique no ícone Adicionar Parâmetro.

    É exibida uma linha sob os cabeçalhos das colunas. Seus campos têm os seguintes valores padrão: Nome, PARAM1; Modo, IN; Sem Cópia, desmarcado; Tipo de Dados, VARCHAR2; Valor Padrão, vazio.

  7. Para Nome, altere PARAM1 para EVALUATION_ID.

  8. Para Modo, aceite o valor padrão, IN.

  9. Para Tipo de Dados, selecione NÚMERO no menu.

  10. Deixe Valor Default vazio.

  11. Adicione um segundo parâmetro repetindo as etapas de 6 a 10 com o Nome EMPLOYEE_ID e o NÚMERO do Tipo de Dados.

  12. Adicione um terceiro parâmetro repetindo as etapas de 6 a 10 com o Nome EVALUATION_DATE e a DATA do Tipo de Dados.

  13. Adicione um quarto parâmetro repetindo as etapas 6 a 10 com o Nome JOB_ID e as Etapas do Tipo de Dados VARCHAR2.

  14. Adicione um quinto parâmetro repetindo as etapas de 6 a 10 com o Nome MANAGER_ID e o NÚMERO DO Tipo de Dados.

  15. Adicione um sexto parâmetro repetindo as etapas de 6 a 10 com o Nome DEPARTMENT_ID e o NÚMERO do Tipo de Dados.

  16. Adicione um sétimo parâmetro repetindo as etapas de 6 a 10 com o Nome TOTAL_SCORE e o NÚMERO do Tipo de Dados.

  17. Clique em OK.

    CREATE OR REPLACE PROCEDURE ADD_EVALUATION
    (
      EVALUATION_ID IN NUMBER
    , EMPLOYEE_ID IN NUMBER
    , EVALUATION_DATE IN DATE
    , JOB_ID IN VARCHAR2
    , MANAGER_ID IN NUMBER
    , DEPARTMENT_ID IN NUMBER
    , TOTAL_SCORE IN NUMBER
    ) AS
    
    BEGIN
    
      NULL;
    
    END ADD_EVALUATION;
    

    O título do painel ADD_EVALUATION está em fonte itálica, indicando que o procedimento ainda não foi salvo no banco de dados.

    Como a parte de execução do procedimento contém apenas a instrução NULL, o procedimento não faz nada.

  18. Substitua a instrução NULL por esta instrução:

    INSERT INTO EVALUATIONS (
      evaluation_id,
      employee_id,
      evaluation_date,
      job_id,
      manager_id,
      department_id,
      total_score
    )
    VALUES (
      ADD_EVALUATION.evaluation_id,
      ADD_EVALUATION.employee_id,
      ADD_EVALUATION.evaluation_date,
      ADD_EVALUATION.job_id,
      ADD_EVALUATION.manager_id,
      ADD_EVALUATION.department_id,
      ADD_EVALUATION.total_score
    );
    

    (A qualificação de nomes do parâmetro com o nome do procedimento assegura que eles não sejam confundidos com as colunas que têm os mesmos nomes.)

  19. No menu Arquivo, selecione Salvar.

O Oracle Database compila o procedimento e o salva. O título do painel ADD_EVALUATION não fica mais na fonte em itálico. O painel Mensagem - Log tem a mensagem Compiled.

Consulte também:

Tutorial: Criando uma Função Independente

Este tutorial mostra como usar a ferramenta Criar Função para criar uma função stand-alone chamada CALCULATE_SCORE que tem três parâmetros e retorna um valor do tipo NUMBER.

Para criar uma função stand-alone, use as ferramentas SQL Developer CREATE FUNCTION ou a instrução DDL CREATE FUNCTION.

Etapas para criar uma função independente usando a ferramenta Criar Função:

  1. No quadro Conexões, expanda hr_conn.

  2. Na lista de tipos de objeto de esquema, clique com o botão direito do mouse em Funções.

  3. Na lista de opções, clique em Nova Função.

    A janela Criar Função é aberta.

  4. Para Esquema, aceite o valor padrão, HR.

  5. Para Nome, altere FUNCTION1 para CALCULATE_SCORE.

  6. Para Tipo de Devolução, selecione NÚMERO no menu.

  7. Clique no ícone Adicionar Parâmetro.

    É exibida uma linha sob os cabeçalhos das colunas. Seus campos têm os seguintes valores padrão: Nome, PARAM1; Modo, IN; Sem Cópia, desmarcado; Tipo de Dados, VARCHAR2; Valor Padrão, vazio.

  8. Para Nome, altere PARAM1 para cat.

  9. Para Modo, aceite o valor padrão, IN.

  10. Para Tipo de Dados, aceite o padrão, VARCHAR2.

  11. Deixe Valor Default vazio.

  12. Adicione um segundo parâmetro repetindo as etapas 7 a 11 com o Nome score e o NÚMERO do Tipo de Dados.

  13. Adicione um terceiro parâmetro repetindo as etapas de 7 a 11 com o Nome weight e o NÚMERO do Tipo de Dados.

  14. Clique em OK.

    O painel CALCULATE_SCORE é aberto, mostrando a instrução CREATE FUNCTION que criou a função:

    CREATE OR REPLACE FUNCTION CALCULATE_SCORE
    (
      CAT IN VARCHAR2
    , SCORE IN NUMBER
    , WEIGHT IN NUMBER
    ) RETURN NUMBER AS
    
    BEGIN
    
      RETURN NULL;
    
    END CALCULATE_SCORE;
    

    O título do painel CALCULATE_SCORE está em fonte itálica, indicando que a função ainda não foi salva no banco de dados.

    Como a única instrução na parte de execução da função é a instrução RETURN NULL, a função não faz nada.

  15. Substitua NULL por score * weight.

  16. No menu Arquivo, selecione Salvar.

    O Oracle Database compila e salva a função. O título do painel CALCULATE_SCORE não fica mais na fonte em itálico. O painel Mensagem - Log tem a mensagem Compiled.

Consulte também:

Alterando Subprogramas Stand-alone

Para alterar um subprograma stand-alone, use a ferramenta Edição do SQL Developer ou a instrução DDL ALTER PROCEDURE ou ALTER FUNCTION.

Etapas para alterar um subprograma standalone usando a ferramenta Editar:

  1. No quadro Conexões, expanda hr_conn.

  2. Na lista de tipos de objeto de esquema, expanda Funções ou Procedimentos.

    Uma lista de funções ou procedimentos é exibida.

  3. Clique na função ou procedimento a ser alterado.

    À direita do quadro Conexões, um quadro é exibido. Sua guia superior tem o nome do subprograma a ser alterado. O painel Código mostra o código que criou o subprograma.

    O painel Código está no modo de gravação. (Clicar no ícone de lápis alterna o modo de gravação para somente leitura, ou o inverso.)

  4. No painel Código, altere o código.

    O título do painel muda para formato de fonte itálico, indicando que a alteração ainda não foi salva no banco de dados.

  5. No menu Arquivo, selecione Salvar.

    O Oracle Database compila e salva o subprograma. O título do painel não é mais exibido no formato de fonte itálico. O painel Mensagem - Log tem a mensagem Compiled.

Consulte também:

Tutorial: Testando uma Função Independente

Este tutorial mostra como usar a ferramenta SQL Developer Run para testar a função standalone CALCULATE_SCORE.

Etapas para testar a função CALCULATE_SCORE usando a ferramenta Executar:

  1. No quadro Conexões, expanda hr_conn.

  2. Na lista de tipos de objeto de esquema, expanda Funções.

  3. Na lista de funções, clique com o botão direito no CALCULATE_SCORE.

  4. Na lista de opções, clique em Executar.

    A janela Executar PL/SQL é aberta. O quadro Bloco PL/SQL inclui este código:

     v_Return := CALCULATE_SCORE (
         CAT => CAT,
         SCORE => SCORE,
         WEIGHT => WEIGHT
       );
    
  5. Altere os valores de SCORE e WEIGHT para 8 e 0.2, respectivamente:

     v_Return := CALCULATE_SCORE (
         CAT => CAT,
         SCORE => 8,
         WEIGHT => 0.2
       );
    
  6. Clique em OK.

    No painel Código, a janela Execução é aberta, mostrando este resultado:

     Connecting to the database hr_conn.
     Process exited.
     Disconnecting from the database hr_conn.
    

    À direita da guia Running está a guia Output Variables.

  7. Clique na guia Variáveis de Saída.

    Dois quadros aparecem, Variável e Valor, que contêm os valores <Return Value> e 1,6, respectivamente.

Consulte Também: Oracle SQL Developer User's Guide para obter informações sobre como usar o SQL Developer para executar e depurar procedimentos e funções

Eliminando Subprogramas Standalone

Para eliminar um subprograma standalone, use o quadro Conexões do SQL Developer e a ferramenta Eliminar ou a instrução DDL PROCEDIMENTO DE DROP ou FUNÇÃO DE DROP.

Cuidado: Não elimine o procedimento ADD_EVALUATION ou a função CALCULATE_SCORE — você precisa deles para tutoriais posteriores. Se quiser praticar a eliminação de subprogramas, crie subprogramas simples e, em seguida, elimine-os.

Etapas para eliminar um subprograma stand-alone usando a ferramenta Eliminar:

  1. No quadro Conexões, expanda hr_conn.

  2. Na lista de tipos de objeto de esquema, expanda Funções ou Procedimentos.

  3. Na lista de funções ou procedimentos, clique com o botão direito do mouse no nome da função ou procedimento a ser eliminado.

  4. Na lista de opções, clique em Eliminar.

  5. Na janela Eliminar, clique em Aplicar.

  6. Na janela Confirmação, clique em OK.

Consulte também: