Procedure Flashcards

(31 cards)

1
Q

O que é uma procedure em PL/SQL?

A

Um bloco de código nomeado que executa uma tarefa específica e pode receber parâmetros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual a estrutura básica de uma procedure?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual a função da cláusula IS em uma procedure?

A

Declarar variáveis internas que serão usadas dentro da procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como executar uma procedure?

A

EXECUTE nome_da_procedure(parametros); ou dentro de um bloco BEGIN nome_da_procedure(parametros); END;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual a vantagem de usar procedures?

A

Organização, reutilização de código e maior eficiência no desenvolvimento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que significa a cláusula IN ao declarar um parâmetro em uma procedure?

A

Indica que o parâmetro é um valor de entrada para a procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Onde as procedures criadas ficam armazenadas no banco de dados Oracle?

A

Na pasta “Procedures” dentro da lista de objetos do banco de dados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

É obrigatório declarar variáveis internas dentro de uma procedure?

A

Não, a declaração de variáveis internas é opcional. Só é necessária se a procedure precisar de variáveis que não são passadas como parâmetros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que deve ser incluído no espaço entre o IS e o BEGIN, na criação de uma procedure?

A

A declaração de todas as variáveis que serão executadas no programa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual a função do comando CREATE OR REPLACE em PL/SQL ao criar uma procedure?

A

Permite alterar uma procedure existente ou criar uma nova se ela não existir, evitando erros caso a procedure já exista no banco de dados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Por que é recomendado usar CREATE OR REPLACE ao criar procedures?

A

Para garantir que a procedure seja sempre criada ou alterada, simplificando o processo de atualização e evitando erros de “objeto já existente”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qual a diferença entre CREATE e CREATE OR REPLACE ao criar uma procedure que já existe?

A

CREATE gera um erro se a procedure já existe, enquanto CREATE OR REPLACE substitui a procedure existente pela nova definição.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que acontece se você usar CREATE OR REPLACE para criar uma procedure com o mesmo nome de uma já existente?

A

A procedure existente é substituída pela nova definição, mantendo o mesmo nome e atualizando sua lógica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Construa as seguintes procedures:

INCLUINDO_PRODUTO - Inclui um produto novo, passando como parâmetros todos os campos para inclusão de um produto na tabela. (codigo, descrição e categoria)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Construa as seguintes procedure

ALTERANDO_CATEGORIA_PRODUTO - Altera apenas a categoria do produto, dado um código.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Construa as seguintes procedure

EXCLUINDO_PRODUTO - Exclui um produto, passando como parâmetro o seu código.

17
Q

Qual a finalidade do comando SET SERVEROUTPUT ON;?

A

Habilitar a exibição de mensagens de saída (output) no SQL Developer, permitindo visualizar resultados de dbms_output.put_line.

18
Q

O que o comando dbms_output.put_line(v_DESCRICAO); faz?

A

Exibe o valor contido na variável v_DESCRICAO na janela de saída do SQL Developer.

19
Q

Explique o fluxo geral do script.

A

O script define o output do servidor, declara variáveis para o ID e a descrição do segmento, consulta a descrição do segmento com base no ID fornecido e exibe a descrição na tela.

20
Q

Qual o erro comum ao usar SELECT INTO em PL/SQL?

A

Tentar associar um resultado de SELECT que retorna múltiplas linhas ou colunas a uma variável que espera um único valor.

21
Q

O que acontece se um SELECT com múltiplas linhas for atribuído a uma variável com INTO?

A

Ocorre um erro ORA-01422: a extração exata retorna mais do que o número solicitado de linhas.

22
Q

Como resolver o problema de selecionar múltiplos valores (colunas) para variáveis diferentes?

A

Utilizar múltiplos comandos SELECT, cada um atribuindo um valor a uma variável específica.

23
Q

Qual a recomendação ao usar SELECT INTO com variáveis em PL/SQL?

A

Sempre garantir que o SELECT retorne um único valor (uma célula) para ser associado à variável.

24
Q

Temos a tabela PRODUTO_VENDA_EXERCICIO, que ainda não teve dados incluídos nela.

Faça uma procedure, chamada INCLUINDO_DADOS_VENDA, para incluir linhas nesta tabela. Os parâmetros, por enquanto, serão todos os campos da tabela.
(ID, COD PRODUTO, DATA, QUANTIDADE, PRECO, VALOR, IMPOSTO)

25
Substituir a variável p_CATEGORIA do parâmetro da incluir_cliente. Trazer a função categoria_cliente() para a calcular a categoria.
26
Modifique a rotina acima de tal maneira que: 1) O valor da venda será a quantidade * preco. 2) O percentual do imposto será obtido da função RETORNA_IMPOSTO, implementada na atividade anterior.
27
No último vídeo, ocorreu a seguinte transformação do CNPJ: De: 68090 Para: 680/90 Usando o seu conhecimento de Oracle, e sabendo que o CNPJ sempre será de 5 dígitos, como deve ser a procedure, que criamos no curso, para transformar o CNPJ em 68/09-0?
28
Qual o propósito do comando EXECUTE em PL/SQL?
Executar uma procedure ou função diretamente. No contexto da aula, ele é usado para executar a procedure INCLUIR_CLIENTE e inserir um novo cliente na tabela.
29
Qual a sintaxe básica do comando EXECUTE para uma procedure sem parâmetros?
EXECUTE nome_da_procedure;
30
Como você usaria o comando EXECUTE para chamar a procedure INCLUIR_CLIENTE com os seguintes valores: ID = 4, RAZAO_SOCIAL = 'SUPERMERCADO REI DA COLINA', CNPJ = '9876543210', SEGMERCADO_ID = 1, FATURAMENTO = 50000?
EXECUTE INCLUIR_CLIENTE(4, 'SUPERMERCADO REI DA COLINA', '9876543210', 1, 50000);
31
Usando a procedure CALCULO_IMPOSTO, calcule o imposto da venda 2. Crie um programa em PL/SQL que exiba esse resultado.