30 most important pl sql interview questions
Principais perguntas da entrevista PL / SQL com exemplos para ajudá-lo a se preparar para a próxima entrevista:
O que é PL / SQL?
PL / SQL (Linguagem procedural / SQL) é basicamente uma extensão procedural do Oracle - SQL. PL / SQL ajuda o usuário a desenvolver aplicativos de banco de dados complexos usando estruturas de controle, procedimentos, funções, módulos, etc.
Este artigo discutirá as principais perguntas e respostas da entrevista PL / SQL.
Perguntas e respostas da entrevista PL / SQL
Vamos começar!!
P # 1) Diferenciar PL / SQL e SQL?
Responda: A diferença entre SQL e PL / SQL pode ser categorizada da seguinte forma:
| SQL | PL / SQL |
|---|---|
| SQL é uma linguagem natural muito útil para processamento interativo. | PL / SQL é uma extensão procedural do Oracle - SQL. |
| Sem recursos procedurais como teste de condição, looping é oferecido pelo SQL. | PL / SQL oferece suporte a recursos procedurais, bem como recursos de alta linguagem, como instruções condicionais, instruções de loop, etc. |
| Todas as instruções SQL são executadas pelo servidor de banco de dados uma por vez, portanto, é um processo demorado. | As instruções PL / SQL enviam todo o bloco de instruções ao servidor de banco de dados ao mesmo tempo, portanto, o tráfego de rede é reduzido consideravelmente. |
| Nenhum procedimento de tratamento de erros existe no SQL. | PL / SQL oferece suporte ao tratamento de erros personalizado. |
P # 2) Alistar as características do PL / SQL?
Responda:
As características do PL / SQL são as seguintes:
- A PL / SQL permite o acesso e o compartilhamento dos mesmos subprogramas por vários aplicativos.
- É conhecido pela portabilidade do código, pois o código pode ser executado em qualquer sistema operacional, desde que o Oracle esteja carregado nele.
- Com o PL / SQL, os usuários podem escrever suas próprias rotinas de tratamento de erros personalizadas.
- Desempenho de transação aprimorado com integração ao dicionário de dados Oracle.
P # 3) Quais são os tipos de dados disponíveis no PL / SQL?
Responda: Os tipos de dados definem as maneiras de identificar o tipo de dados e suas operações associadas.
Existem 4 tipos de tipos de dados predefinidos explicados a seguir:
- Tipos de dados escalares: Um tipo de dados escalar é um tipo de dados atômico que não possui nenhum componente interno.
- Por exemplo
- CHAR (intervalo de valores de caracteres de comprimento fixo entre 1 e 32.767 caracteres)
- VARCHAR2 (intervalo de valores de caracteres de comprimento variável entre 1 e 32.767 caracteres)
- NUMBER (valores decimais fixos, decimais flutuantes ou inteiros)
- BOOLEAN (tipo de dados lógicos para valores TRUE FALSE ou NULL)
- DATE (armazena informações de data e hora)
- LONG (dados de caracteres de comprimento variável)
- Tipos de dados compostos: Um tipo de dados composto é feito de outros tipos de dados e componentes internos que podem ser facilmente usados e manipulados. Por exemplo, RECORD, TABLE e VARRAY.
- Tipos de dados de referência: Um tipo de dados de referência contém valores, chamados de ponteiros que indicam outros itens de programa ou itens de dados. Por exemplo, REF CURSOR.
- Tipos de dados de objetos grandes: Um tipo de dados de objeto grande contém valores, chamados localizadores, que definem a localização de objetos grandes (como clipes de vídeo, imagem gráfica, etc.) armazenados fora da linha.
- Por exemplo
- BFILE (arquivo binário)
- BLOB (objeto binário grande)
- CLOB (objeto grande de personagem)
- NCLOB (objeto grande tipo NCHAR)
Leitura recomendada = >> Tipos de dados PL SQL
Q # 4) Explique o propósito dos tipos de dados% TYPE e% ROWTYPE com o exemplo?
Responda: O PL / SQL usa o atributo de declaração% TYPE para ancoragem. Este atributo fornece o tipo de dados de uma variável, constante ou coluna. O atributo% TYPE é útil ao declarar uma variável que possui o mesmo tipo de dados que uma coluna da tabela.
Por exemplo, a variável m_empno tem o mesmo tipo de dados e tamanho da coluna empno na tabela emp.
m_empno emp.empno%TYPE;O atributo% ROWTYPE é usado para declarar uma variável como um registro com a mesma estrutura de uma linha em uma tabela. A linha é definida como um registro e seus campos têm os mesmos nomes e tipos de dados que as colunas na tabela ou exibição.
Por exemplo:
dept_rec dept%ROWTYPE;Isso declara um registro que pode armazenar uma linha inteira para a tabela DEPT.
P # 5) O que você entende por pacotes PL / SQL?
Responda: Os pacotes PL / SQL são objetos de esquema que agrupam funções, procedimentos armazenados, cursores e variáveis em um só lugar.
Os pacotes têm 2 partes obrigatórias:
- Especificações do pacote
- Corpo da embalagem
P # 6) O que você entende por cursores PL / SQL?
Responda: A PL / SQL requer um recurso especial para recuperar e processar mais de uma linha e esse recurso é conhecido como Cursores. Um cursor é um ponteiro para a área de contexto, que é uma área da memória que contém instruções SQL e informações para processar as instruções.
O Cursor PL / SQL é basicamente um mecanismo pelo qual várias linhas dos dados do banco de dados são selecionadas e, em seguida, cada linha é processada individualmente dentro de um programa.
Q # 7) Explique os tipos de cursor.
quando um elemento individual de uma matriz é passado para um método:
Responda: Existem dois tipos de cursores.
Eles são explicados da seguinte forma:
a) Cursores explícitos: Para consultas que retornam mais de uma linha, um cursor explícito é declarado e nomeado por um programador. Para usar o cursor explícito no PL / SQL, 4 etapas são seguidas
- Declare o cursor
Sintaxe: CURSOR é
Instrução SELECT;
Aqui, é o nome atribuído ao cursor e a instrução SELECT é a consulta que retorna linhas para o conjunto ativo do cursor.
- Abra o cursor
Sintaxe: ABRIR ;
Onde, é o nome do cursor definido anteriormente.
- Buscar linhas do cursor
Sintaxe: FETCH INTO;
Aqui, refere-se ao nome do cursor definido anteriormente a partir do qual as linhas estão sendo buscadas.
representa a lista de variáveis que receberão os dados sendo buscados.
- Fechando o cursor
Sintaxe: FECHAR ;
Aqui está o nome do cursor sendo fechado.
b) Cursores implícitos: Quando qualquer instrução SQL é executada, o PL / SQL cria automaticamente um cursor sem definir tais cursores são conhecidos como cursores implícitos.
Para as instruções a seguir, PL / SQL emprega cursores implícitos
- INSERIR
- ATUALIZAR
- EXCLUIR
- SELECT (consultas que retornam exatamente uma linha)
Q # 8) Quando usamos gatilhos?
Responda: A palavra ‘Trigger’ significa ativar. Em PL / SQL, o gatilho é um procedimento armazenado que define uma ação realizada pelo banco de dados quando o evento relacionado ao banco de dados é executado.
Os gatilhos são necessários principalmente para os seguintes fins:
- Para manter restrições de integridade complexas
- Auditar informações da tabela, registrando as alterações
- Sinalizando outras ações do programa quando mudanças são feitas na mesa
- Aplicar regras de negócios complexas
- Prevenir transações inválidas
P # 9) Explique a diferença na execução de triggers e stored procedures?
Responda: Um procedimento armazenado é executado explicitamente emitindo uma instrução de chamada de procedimento de outro bloco por meio de uma chamada de procedimento com argumentos.
O gatilho é executado implicitamente sempre que acontece qualquer evento de gatilho, como a ocorrência de instruções DML.
P # 10) Explique a diferença entre gatilhos e restrições?
Resposta: Os gatilhos são diferentes das restrições nas seguintes maneiras:
| Gatilhos | Restrições |
|---|---|
| Afeta apenas as linhas adicionadas após o acionador ser ativado. | Afeta todas as linhas da tabela, incluindo aquelas já existentes quando a restrição é ativada. |
| Os gatilhos são usados para implementar regras de negócios complexas que não podem ser implementadas usando restrições de integridade. | As restrições mantêm a integridade do banco de dados. |
Q # 11) O que é um bloco PL / SQL?
Responda: Em PL / SQL, as instruções são agrupadas em unidades chamadas Blocos. Os blocos PL / SQL podem incluir constantes, variáveis, instruções SQL, loops, instruções condicionais, tratamento de exceções. Os blocos também podem construir um procedimento, uma função ou um pacote.
Em termos gerais, Os blocos PL / SQL são de dois tipos:
(i) Bloqueios anônimos: Os blocos PL / SQL sem cabeçalho são conhecidos como blocos anônimos. Esses blocos não formam o corpo de um procedimento, função ou gatilhos.
Exemplo:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END; (ii) Blocos nomeados: Os blocos PL / SQL com cabeçalho ou rótulos são conhecidos como blocos nomeados. Os blocos nomeados podem ser subprogramas (procedimentos, funções, pacotes) ou Triggers.
Leitura recomendada = >> Procedimentos e funções do PL SQL
Exemplo:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END; P # 12) Diferenciar erros de sintaxe e de tempo de execução?
Responda:
Erros de sintaxe são aqueles que podem ser facilmente identificados por um compilador PL / SQL. Esses erros podem ser um erro de grafia, etc.
Erros de tempo de execução são aqueles erros no bloco PL / SQL para os quais uma seção de tratamento de exceção deve ser incluída para tratar os erros. Esses erros podem ser a instrução SELECT INTO que não retorna nenhuma linha.
P # 13) O que são COMMIT, ROLLBACK e SAVEPOINT?
Responda: COMMIT, SAVEPOINT e ROLLBACK são três especificações de transação disponíveis em PL / SQL.
melhores aplicativos de telefone espião para Android
Declaração COMMIT: Quando a operação DML é executada, ela apenas manipula os dados no buffer do banco de dados e o banco de dados não é afetado por essas mudanças. Para salvar / armazenar essas alterações de transação no banco de dados, precisamos COMMIT a transação. A transação COMMIT salva todas as alterações pendentes desde o último COMMIT e o seguinte processo acontece
- Os bloqueios de linhas afetadas são liberados
- Transação marcada como concluída
- Os detalhes da transação são armazenados no dicionário de dados.
Sintaxe: COMPROMETER-SE;
Instrução ROLLBACK: Quando queremos desfazer ou apagar todas as alterações que ocorreram na transação atual até agora, solicitamos que a transação seja revertida. Em outras palavras, ROLLBACK apaga todas as mudanças pendentes desde o último COMMIT ou ROLLBACK.
Sintaxe para reverter uma transação completamente:
ROLLBACK;
Declaração SAVEPOINT: A instrução SAVEPOINT fornece um nome e marca um ponto no processamento da transação atual. As alterações e bloqueios que ocorreram antes do SAVEPOINT na transação são preservados, enquanto aqueles que ocorrem após o SAVEPOINT são liberados.
Sintaxe:
SALVAR PONTO ;
Q # 14) O que é a tabela de mutação e a tabela de restrição?
Responda: Uma tabela que está sendo modificada por uma instrução DML, como a definição de gatilhos em uma tabela, é conhecida como Mesa mutante .
Uma tabela que pode precisar ser lida para uma restrição de integridade referencial é conhecida como mesa restritiva .
Q # 15) Quais são os parâmetros reais e os parâmetros formais?
Responda: As variáveis ou uma expressão referida como parâmetros que aparecem na instrução de chamada do procedimento são conhecidas como Parâmetros reais .
Por exemplo: raise_sal (emp_num, mérito + quantia);
Aqui no exemplo acima, emp_num e amount são os dois parâmetros reais.
As variáveis que são declaradas no cabeçalho do procedimento e são referenciadas no corpo do procedimento são chamadas como Parâmetros formais .
Por exemplo:
PROCEDURE raise_sal (emp_id INTEGER) IS
curr_sal REAL:
……… ..
COMEÇAR
SELECIONE sal INTO cur_sal FROM emp WHERE empno = emp_id;
…….
END raise_sal;
Aqui no exemplo acima, emp_id atua como um parâmetro formal.
Q # 16) Qual é a diferença entre as instruções ROLLBACK e ROLLBACK TO?
Responda: A transação é completamente finalizada após a instrução ROLLBACK, ou seja, o comando ROLLBACK desfaz completamente uma transação e libera todos os bloqueios.
Por outro lado, uma transação ainda está ativa e em execução após o comando ROLLBACK TO, pois desfaz apenas uma parte da transação até o SAVEPOINT fornecido.
Q # 17) Escreva um script PL / SQL para exibir a seguinte série de números: 99,96,93 …… 9,6,3?
Responda
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; / Q # 18) Quais são os 3 modos de parâmetro?
Responda: 3 modos do parâmetro são IN, OUT, IN OUT.
Isso pode ser explicado da seguinte forma:
- Parâmetros IN: Os parâmetros IN permitem que você passe valores para o procedimento que está sendo chamado e podem ser inicializados com os valores padrão. Os parâmetros IN atuam como uma constante e não podem receber nenhum valor.
- Parâmetros OUT: Os parâmetros OUT retornam o valor ao chamador e devem ser especificados. Os parâmetros OUT agem como uma variável não inicializada e não podem ser usados em uma expressão.
- Parâmetros IN OUT: Os parâmetros IN OUT passam os valores iniciais para um procedimento e retornam valores atualizados ao chamador. Os parâmetros IN OUT agem como uma variável inicializada e devem receber um valor.
Q # 19) Por que% ISOPEN é sempre falso para um cursor implícito?
Responda: Um cursor implícito, atributo SQL% ISOPEN é sempre falso porque o cursor implícito é aberto para uma instrução DML e é fechado imediatamente após a execução da instrução DML.
Q # 20) Quando uma instrução DML é executada, em quais atributos do cursor, o resultado da instrução é salvo?
Responda: O resultado da declaração é salvo em 4 atributos do cursor.
Esses são:
- SQL% FOUND
- SQL% NOTFOUND
- SQL% ROWCOUNT
- SQL% ISOPEN
Q # 21) Quais são as maneiras de comentar em um código PL / SQL?
Responda: Os comentários são o texto que acompanha o código para melhorar a legibilidade e para a compreensão do leitor. Esses códigos nunca são executados.
Existem duas maneiras de comentar em PL / SQL:
1) Comentário de linha única: Este comentário começa com duplo -.
Exemplo:
DECLARAR
num NUMBER (2); - é uma variável local.
COMEÇAR
2) Comentário multilinha: Este comentário começa com / * e termina com * /.
Exemplo:
COMEÇAR
num: = & p_num; / * Esta é uma variável de host usada no corpo do programa * /
……….
FIM
P # 22) O que você entende por manipulação de exceções em PL / SQL?
conversor do youtube para mp3 sem vírus
Responda: Quando ocorre um erro no PL / SQL, a exceção é levantada. Em outras palavras, para lidar com situações indesejadas em que os scripts PL / SQL terminaram inesperadamente, um código de tratamento de erro é incluído no programa. No PL / SQL, todo código de tratamento de exceção é colocado em uma seção EXCEPTION.
Existem 3 tipos de EXCEÇÃO:
- Exceções predefinidas: Erros comuns com nomes predefinidos.
- Exceções indefinidas: Erros menos comuns sem nomes predefinidos.
- Exceções definidas pelo usuário: Não cause erro de tempo de execução, mas viole as regras de negócios.
P # 23) Alistar algumas exceções predefinidas?
Responda:
Algumas das exceções predefinidas são:
- NENHUM DADO ENCONTRADO: Instrução SELECT de linha única em que nenhum dado é retornado.
- TOO_MANY_ROWS: Instrução SELECT de linha única em que mais de uma linha é retornada.
- INVALID_CURSOR: Ocorreu uma operação ilegal do cursor.
- DIVISÃO POR ZERO: Tentativa de divisão por zero.
P # 24) O que são exceções do cursor PL / SQL?
Responda:
As exceções relacionadas aos cursores PL / SQL são:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
Q # 25) Explique a diferença entre o cursor declarado em procedimentos e cursores declarados na especificação do pacote?
Responda: O cursor declarado no procedimento é tratado como local e, portanto, não pode ser acessado por outros procedimentos.
O cursor declarado na especificação do pacote é tratado como global e, portanto, pode ser acessado por outros procedimentos.
Q # 26) O que são gatilhos INSTEAD OF?
Responda: Os gatilhos INSTEAD OF são os gatilhos escritos especialmente para modificar visualizações, que não podem ser modificados diretamente por meio de instruções SQL DML.
Q # 27) O que são expressões?
Responda: As expressões são representadas por uma sequência de literais e variáveis separadas por operadores. No PL / SQL, as operações são usadas para manipular, comparar e calcular alguns dados. Uma expressão é uma composição de 'Operadores' e 'Operandos'.
- Operandos: Esses são um argumento para os operadores. Operandos podem ser uma variável, chamada de função ou constante.
- Operadores: Eles especificam as ações a serem realizadas nos operadores. Exemplo: '+', '*', Etc.
Q # 28) Liste diferentes tipos de expressões com o exemplo.
Responda: As expressões podem ser as mencionadas abaixo:
- Expressões numéricas ou aritméticas: Exemplo: 20 * 10+ 15
- Expressões booleanas: Exemplo: ‘Spot’ LIKE ‘sp% t’
- Expressões de string: Exemplo: COMPRIMENTO (‘NOVA YORK’ || ‘NY’)
- Expressões de data: Exemplo: SYSDATE> TO_DATE (’15 -NOV-16 ’,“ dd-mm-aa ”)
Q # 29) Escreva um programa que mostre o uso do loop WHILE para calcular a média dos números inseridos pelo usuário e a entrada de mais números seja interrompida inserindo o número 0?
Responda
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END; P # 30) O que você entende por registros PL / SQL?
Responda: Um registro PL / SQL pode ser referido como uma coleção de valores ou, digamos, um grupo de várias informações, cada uma das quais é de tipos mais simples e podem ser relacionadas umas às outras como campos.
Existem três tipos de registros suportados em PL / SQL:
- Registros baseados em tabela
- Registros baseados em programador
- Registros baseados em cursor
Conclusão
A PL / SQL é muito vasta quando se trata de aprendizado e aplicação. Espero que essas perguntas e respostas da entrevista ajudem você a prosseguir.
Para saber mais sobre PL SQL, leia nosso abrangente Série de tutoriais PL / SQL .
Aprendizagem feliz !!
Leitura recomendada
- Perguntas e respostas da entrevista
- Perguntas e respostas da entrevista de teste de ETL
- Mais de 30 perguntas e respostas populares para entrevistas com pepinos
- As 30 principais perguntas e respostas da entrevista do SAS
- Principais perguntas da entrevista sobre Oracle: Oracle Basic, SQL, PL / SQL Questions
- As 30 principais perguntas e respostas da entrevista de teste de segurança
- Mais de 30 principais perguntas e respostas da entrevista de Scrum (LISTA 2021)
- 30 principais perguntas e respostas da entrevista de DBMS