65 perguntas e respostas da entrevista PL/SQL (2025)

Aqui estão as perguntas e respostas da entrevista PL/SQL para candidatos mais novos e experientes para conseguir o emprego dos sonhos.

 

Perguntas e respostas da entrevista PL/SQL para calouros

1) O que é PL-SQL?

Oracle PL/SQL é uma extensão da linguagem SQL que combina o poder de manipulação de dados do SQL com o poder de processamento da linguagem processual para criar consultas SQL superpoderosas. O PL/SQL garante o processamento contínuo de instruções SQL, aumentando a segurança, a portabilidade e a robustez do banco de dados.
PL/SQL significa “Extensões de linguagem processual para linguagem de consulta estruturada”.

👉 Download gratuito de PDF: Perguntas e respostas da entrevista PL/SQL


2) Diferencie entre% ROWTYPE e TYPE RECORD.

% TIPO DE LINHA é usado quando uma consulta retorna uma linha inteira de uma tabela ou visualização.
TIPO DE REGISTRO por outro lado, é usado quando uma consulta retorna colunas de tabelas ou visualizações diferentes.

Por exemplo. TIPO r_emp é RECORDE (sno smp.smpno%tipo,sname smp sname%tipo)

e_rec smp%TIPO DE LINHA

O cursor c1 é selecionado smpno,dept de smp;

e_rec c1%TIPO DE LINHA


3) Explique os usos do cursor.

Cursor é uma área privada nomeada em SQL a partir da qual as informações podem ser acessadas. Eles são obrigados a processar cada linha individualmente para consultas que retornam múltiplas linhas.


4) Mostre o código de um cursor para loop.

O cursor declara %ROWTYPE como índice de loop implicitamente. Em seguida, ele abre um cursor, obtém linhas de valores do conjunto ativo nos campos do registro e fecha quando todos os registros são processados.

Por exemplo.

FOR smp_rec IN C1 LOOP

totalsal=totalsal+smp_recsal;

ENDLOOP;

5) Explique os usos do gatilho de banco de dados.

Uma unidade de programa PL/SQL associada a uma tabela de banco de dados específica é chamada de gatilho de banco de dados. É usado para :

1) Modificações de dados de auditoria.

2) Registrar eventos de forma transparente.

3) Aplicar regras de negócios complexas.

4) Manter tabelas de réplica

5) Derive os valores da coluna

6) Implementar autorizações de segurança complexas


6) Quais são os dois tipos de exceções.

Parte do tratamento de erros do bloco PL/SQL é chamada de Exceção. Eles têm dois tipos: definidos pelo usuário e predefinidos.


7) Mostre algumas exceções predefinidas.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

NENHUM DADO ENCONTRADO

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

NÚMERO INVÁLIDO

INVALID_CURSOR

PROGRAM_ERROR

TEMPO LIMITE _ON_RESOURCE

STORAGE_ERROR

LOGON NEGADO

VALUE_ERROR

etc.


8) Explique Raise_application_error.

É um procedimento do pacote DBMS_STANDARD que permite a emissão de mensagens de erro definidas pelo usuário a partir do trigger do banco de dados ou do subprograma armazenado.


9) Mostre como funções e procedimentos são chamados em um bloco PL SQL.

A função é chamada como parte de uma expressão.

total:=calculate_sal('b644')

O procedimento é chamado de declaração em PL/SQL.

calculate_bonus('b644');


10) Explique duas tabelas virtuais disponíveis no momento da execução do gatilho do banco de dados.

As colunas da tabela são referidas como OLD.column_name e NEW.column_name.

Para acionadores relacionados a INSERT, os valores NEW.column_name estão disponíveis apenas.

Para gatilhos relacionados a DELETE, os valores OLD.column_name estão disponíveis apenas.

Para gatilhos relacionados a UPDATE, ambas as colunas da tabela estão disponíveis.


11) Quais são as regras a serem aplicadas aos NULLs durante as comparações?

1) NULL nunca é VERDADEIRO ou FALSO

2) NULL não pode ser igual ou desigual a outros valores

3) Se um valor em uma expressão for NULL, então a própria expressão será avaliada como NULL, exceto para o operador de concatenação (||)


12) Como é compilado um processo de PL SQL?

O processo de compilação inclui verificação de sintaxe, processos de vinculação e geração de código-p.

A verificação de sintaxe verifica os códigos PL SQL em busca de erros de compilação. Quando todos os erros são corrigidos, um endereço de armazenamento é atribuído às variáveis ​​que contêm dados. É chamado de vinculação. O código P é uma lista de instruções para o mecanismo PL SQL. O código P é armazenado no banco de dados para blocos nomeados e é usado na próxima vez que for executado.


13) Diferencie erros de sintaxe e de tempo de execução.

Um erro de sintaxe pode ser facilmente detectado por um compilador PL/SQL. Por exemplo, ortografia incorreta.

Um erro de tempo de execução é tratado com a ajuda da seção de tratamento de exceções em um Bloco PL/SQL. Por exemplo, instrução SELECT INTO, que não retorna nenhuma linha.


14) Explique Commit, Rollback e Savepoint.

Para uma instrução COMMIT, o seguinte é verdadeiro:

  • Outros usuários podem ver as alterações de dados feitas pela transação.
  • Os bloqueios adquiridos pela transação são liberados.
  • O trabalho realizado pela transação torna-se permanente.

Uma instrução ROLLBACK é emitida quando a transação termina e o seguinte é verdadeiro.

  • O trabalho realizado em uma transição é desfeito como se nunca tivesse sido emitido.
  • Todos os bloqueios adquiridos por transação são liberados.

Desfaz todo o trabalho realizado pelo usuário em uma transação. Com SAVEPOINT, apenas parte da transação pode ser desfeita.


15) Defina cursores implícitos e explícitos.

Um cursor está implícito por padrão. O usuário não pode controlar ou processar as informações neste cursor.

Se uma consulta retornar diversas linhas de dados, o programa definirá um cursor explícito. Isso permite que o aplicativo processe cada linha sequencialmente conforme o cursor a retorna.


16) Explique o erro da tabela mutante.

Ocorre quando um gatilho tenta atualizar uma linha que está usando no momento. É corrigido usando visualizações ou tabelas temporárias, então o banco de dados seleciona uma e atualiza a outra.


17) Quando é necessária uma declaração de declaração?

A instrução DECLARE é usada por blocos anônimos PL SQL, como procedimentos autônomos e não armazenados. Se for usado, deverá vir primeiro em um arquivo independente.


18) Quantos gatilhos podem ser aplicados a uma tabela?

Um máximo de 12 gatilhos podem ser aplicados a uma tabela.


19) Qual a importância do SQLCODE e SQLERRM?

SQLCODE retorna o valor do número de erros do último erro encontrado, enquanto SQLERRM retorna a mensagem do último erro.


20) Se um cursor estiver aberto, como podemos encontrar em um bloco PL SQL?

a variável de status do cursor% ISOPEN pode ser usada.


Perguntas da entrevista PL/SQL para experientes

21) Mostre as duas exceções de cursor PL/SQL.

Cursor_Already_Open

Cursor_invaid


22) Quais operadores lidam com NULL?

NVL converte NULL em outro valor especificado.

var:=NVL(var2,'Hi');

IS NULL e IS NOT NULL podem ser usados ​​para verificar especificamente se o valor de uma variável é NULL ou não.


23) O SQL*Plus também possui um mecanismo PL/SQL?

Não, o SQL*Plus não possui um mecanismo PL/SQL incorporado. Assim, todo o código PL/SQL é enviado diretamente para o mecanismo de banco de dados. É muito mais eficiente porque cada afirmação não é eliminada individualmente.


24) Quais pacotes estão disponíveis para desenvolvedores de PL SQL?

Série DBMS_ de pacotes, como DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.


25) Explique 3 partes básicas de um gatilho.

  • Uma declaração ou evento desencadeador.
  • uma restrição
  • Uma ação

26) Quais são as funções dos personagens?

INITCAP, UPPER, SUBSTR, LOWER e LENGTH são todas funções de caracteres. As funções de grupo fornecem resultados com base em grupos de linhas, em vez de linhas individuais. Eles são MAX, MIN, AVG, CONTAGEM e SOMA.


27) Explique TTITLE e BTITLE.

Comandos TTITLE e BTITLE que controlam cabeçalhos e rodapés de relatórios.


28) Mostre os atributos do cursor do PL/SQL.

%ISOPEN: Verifica se o cursor está aberto ou não

%ROWCOUNT: O número de linhas que são atualizadas, excluídas ou buscadas.

%FOUND: Verifica se o cursor buscou alguma linha. É verdade se as linhas forem buscadas

%NOT FOUND: Verifica se o cursor buscou alguma linha. É verdadeiro se as linhas não forem buscadas.


29) O que é uma intersecção?

Intersect é o produto de duas tabelas e lista apenas as linhas correspondentes.


30) O que são sequências?

As sequências são usadas para gerar números de sequência sem sobrecarga de bloqueio. Sua desvantagem é que o número de sequência será perdido se a transação for revertida.


31) Como você faria referência aos valores das colunas ANTES e DEPOIS de inserir e excluir gatilhos?

Usando a palavra-chave “new.column name”, os gatilhos podem referenciar valores de coluna por nova coleção. Ao usar a palavra-chave “old.column name”, eles podem referenciar valores de coluna por coleção antiga.


32) Quais são os usos das palavras-chave SYSDATE e USER?

SYSDATE refere-se à data atual do sistema do servidor. É uma pseudocoluna. USER também é uma pseudocoluna, mas se refere ao usuário atual conectado à sessão. Eles são usados ​​para monitorar as mudanças que acontecem na tabela.


33) Como o ROWID ajuda a executar uma consulta com mais rapidez?

ROWID é o endereço lógico de uma linha, não é uma coluna física. É composto pelo número do bloco de dados, número do arquivo e número da linha no bloco de dados. Assim, o tempo de E/S é minimizado na recuperação da linha e resulta em uma consulta mais rápida.


34) Para que são usados ​​os links de banco de dados?

Links de banco de dados são criados para estabelecer comunicação entre vários bancos de dados ou diferentes ambientes como teste, desenvolvimento e produção. Os links do banco de dados são somente leitura para acessar outras informações também.


35) O que a busca de um cursor faz?

A busca de um cursor lê o conjunto de resultados linha por linha.


36) O que fechar um cursor faz?

Fechar um cursor limpa a área SQL privada e também desaloca memória


37) Explique os usos do arquivo de controle.

É um arquivo binário. Ele registra a estrutura do banco de dados. Inclui localizações de vários arquivos de log, nomes e carimbos de data/hora. Eles podem ser armazenados em locais diferentes para ajudar na recuperação de informações caso um arquivo seja corrompido.


38) Explique a consistência

A consistência mostra que os dados não serão refletidos para outros usuários até que os dados sejam confirmados, para que a consistência seja mantida.


39) Diferem entre blocos e subprogramas Anônimos.

Blocos anônimos são blocos sem nome que não são armazenados em nenhum lugar enquanto os subprogramas são compilados e armazenados no banco de dados. Eles são compilados em tempo de execução.


40) Diferem entre DECODE e CASE.

As instruções DECODE e CASE são muito semelhantes, mas CASE é uma versão estendida de DECODE. DECODE não permite declarações de tomada de decisão em seu lugar.

selecione decode(totalsal=12000,'high',10000,'medium') como decode_tesr de smp onde smpno em (10,12,14,16);

Esta instrução retorna um erro.

CASE é usado diretamente em PL SQL, mas DECODE é usado em PL SQL somente por meio de SQL.


41) Explique a transação autônoma.

Uma transação autônoma é uma transação independente da transação principal ou pai. Não será aninhado se for iniciado por outra transação.

Existem diversas situações para usar transações autônomas, como registro de eventos e auditoria.


42) Diferencie entre SGA e PGA.

SGA significa Área Global de Sistema, enquanto PGA significa Área Global de Programa ou Processo. O PGA recebe apenas 10% do tamanho da RAM, mas o SGA recebe 40% do tamanho da RAM.


43) Qual é a localização das funções pré-definidas.

Eles são armazenados no pacote padrão denominado “Funções, Procedimentos e Pacotes”


44) Explique o polimorfismo em PL SQL.

O polimorfismo é uma característica do OOP. É a capacidade de criar uma variável, um objeto ou função com múltiplas formas. PL/SQL suporta polimorfismo na forma de sobrecarga de unidade de programa dentro de uma função de membro ou pacote. Lógica inequívoca deve ser evitada enquanto a sobrecarga está sendo feita.


45) Quais são os usos do MERGE?

MERGE é usado para combinar várias instruções DML em uma.

Sintaxe: mesclar em nome da tabela

usando (consulta)

on (condição de adesão)

quando não correspondido então

Comando [inserir/atualizar/excluir]

quando combinado então

Comando [inserir/atualizar/excluir]


Perguntas da entrevista PL/SQL para mais de 5 anos de experiência

46) 2 consultas podem ser executadas simultaneamente em um sistema de banco de dados distribuído?

Sim, eles podem ser executados simultaneamente. Uma consulta é sempre independente da segunda consulta em um sistema de banco de dados distribuído baseado no commit de duas fases.


47) Explique Raise_application_error.

É um procedimento do pacote DBMS_STANDARD que permite emitir mensagens de erro definidas pelo usuário a partir do trigger do banco de dados ou subprograma armazenado.


48) Qual é o parâmetro out usado, embora a instrução return também possa ser usada em pl/sql?

Os parâmetros de saída permitem mais de um valor no programa de chamada. O parâmetro Out não é recomendado em funções. Procedimentos podem ser usados ​​em vez de funções se vários valores forem necessários. Assim, esses procedimentos são utilizados para executar os parâmetros Out.


49) Como você converteria a data para o formato de data juliana?

Podemos usar a string de formato J:

SQL > selecione to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') como juliano de dual;

JULIAN


50) Explique SPOOL

O comando Spool pode imprimir a saída de instruções SQL em um arquivo.

spool/tmp/sql_outtxt

selecione smp_name, smp_id de smp onde dept='contas';

carretel fora;


51) Mencione em que consiste o pacote PL/SQL?

Um pacote PL/SQL consiste em

  • Tabela PL/SQL e registro de instruções TYPE
  • Procedimentos e Funções
  • Cursores
  • Variáveis ​​(tabelas, escalares, registros, etc.) e constantes
  • Nomes de exceções e pragmas para relacionar um número de erro com uma exceção
  • Cursores

52) Mencione quais são os benefícios dos pacotes PL/SQL?

Ele oferece vários benefícios como

  • Ocultação forçada de informações: Oferece a liberdade de escolher se deseja manter os dados privados ou públicos
  • Projeto de cima para baixo: Você pode projetar a interface para o código oculto no pacote antes de implementar os próprios módulos
  • Persistência de objeto: Os objetos declarados em uma especificação de pacote se comportam como dados globais para todos os objetos PL/SQL na aplicação. Você pode modificar o pacote em um módulo e depois referenciar essas alterações para outro módulo
  • Projeto orientado a objetos: O pacote dá aos desenvolvedores um forte controle sobre como os módulos e estruturas de dados dentro do pacote podem ser usados
  • Garantindo a integridade da transação: Ele fornece um nível de integridade de transação
  • Melhoria de desempenho: A RDBMS rastreia automaticamente a validade de todos os objetos do programa armazenados no banco de dados e melhora o desempenho dos pacotes.

53) Mencione quais são os diferentes métodos para rastrear o código PL/SQL?

O código de rastreamento é uma técnica crucial para medir o desempenho do código durante o tempo de execução. Diferentes métodos de rastreamento incluem

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION e DBMS_MONITOR
  • utilitários trcsess e tkproof

54) Mencione o que o criador de perfil hierárquico faz?

O criador de perfil hierárquico poderia traçar o perfil das chamadas feitas em PL/SQL, além de preencher a lacuna entre as lacunas e as expectativas de rastreamento de desempenho. As eficiências do criador de perfil hierárquico incluem

  • Relatórios distintos para SQL e consumo de tempo PL/SQL
  • Relata a contagem de chamadas de subprogramas distintos feitas no PL/SQL e o tempo gasto com cada chamada de subprograma
  • Vários relatórios analíticos interativos em formato HTML usando o utilitário de linha de comando
  • Mais eficaz que o profiler convencional e outros utilitários de rastreamento

55) Mencione o que o PLV msg permite que você faça?

A mensagem PLV permite que você

  • Atribuir mensagem de texto individual a linha especificada na tabela PL/SQL
  • Ele recupera o texto da mensagem por número
  • Ele substitui automaticamente suas próprias mensagens por mensagens padrão Oracle mensagens de erro com alternância de restrição
  • Carregar em lote números de mensagens e texto de uma tabela de banco de dados diretamente PLV msg tabela PL/SQL

56) Mencione o que o pacote PLV (PL/Vision) oferece?

  • Valor de substituição nulo
  • Conjunto de rotinas de asserção
  • utilitários diversos
  • Conjunto de constantes usadas em toda a visão PL
  • Tipos de dados predefinidos

57) Mencione qual a utilidade de PLVprs e PLVprsps?

  • PLVprs: É uma extensão para análise de strings para PL/SQL e é o nível mais baixo de funcionalidade de análise de strings
  • PLVprsps: É o pacote de nível mais alto para analisar o código-fonte PL/SQL em átomos separados. Ele depende de outros pacotes de análise para realizar o trabalho.

58) Explique como você pode copiar um arquivo para o conteúdo do arquivo e um arquivo para a tabela PL/SQL antecipadamente PL/SQL?

Com uma única chamada de programa – “procedimento de cópia”, você pode copiar o conteúdo completo de um arquivo para outro arquivo. Já para copiar o conteúdo de um arquivo diretamente em uma tabela PL/SQL, você pode usar o programa “arquivo2pstab”.


59) Explique como o tratamento de exceções é feito antecipadamente em PL/SQL?

Para a tratamento de exceções PL/SQL fornece um plugin eficaz PLVexc. PLVexc oferece suporte a quatro ações diferentes de tratamento de exceções.

  • Continuar processamento
  • Grave e continue
  • Interromper processamento
  • Grave e interrompa o processamento

Para as exceções que ocorrem novamente, você pode usar a instrução RAISE.


60) Mencione que problema alguém pode enfrentar ao gravar informações de log em uma tabela de banco de dados em PL/SQL?

Ao gravar informações de log em uma tabela de banco de dados, o problema que você enfrenta é que as informações só ficam disponíveis quando as novas linhas são confirmadas no banco de dados. Isso pode ser um problema, pois o PLVlog geralmente é implantado para rastrear erros e, em muitos desses casos, a transação atual falharia ou, de outra forma, precisaria de uma reversão.


61) Mencione qual é a função usada para transferir um log de tabela PL/SQL para uma tabela de banco de dados?

Para transferir um log de tabela PL/SQL para uma função de tabela de log de banco de dados “PROCEDIMENTO ps2db” é usado.


62) Quando você tem que usar um savepoint padrão “rollback to” do PLVlog?

O ponto de salvamento padrão “rollback to” do PLVlog é usado quando os usuários ativaram a atividade de reversão e não forneceram um ponto de salvamento alternativo na chamada para put_line. O ponto de salvamento padrão é inicializado com a constante c none.


63) Por que o PLVtab é considerado a forma mais fácil de acessar a tabela PL/SQL?

As tabelas PL/SQL são as mais próximas dos arrays em PL/SQL, e para acessar esta tabela você deve primeiro declarar um tipo de tabela e, em seguida, declarar a própria tabela PL/SQL. Mas ao usar o PLVtab, você pode evitar definir seu próprio tipo de tabela PL/SQL e facilitar o acesso à tabela de dados PL/SQL.


64) Mencione o que o PLVtab permite que você faça ao mostrar o conteúdo das tabelas PL/SQL?

PLVtab permite que você faça o seguinte ao mostrar o conteúdo de tabelas PL/SQL

  • Exibir ou suprimir um cabeçalho para a tabela
  • Exibir ou suprimir os números das linhas dos valores da tabela
  • Mostrar um prefixo antes de cada linha da tabela

65) Explique como você pode salvar ou colocar sua mensagem em uma tabela?

Para salvar msg em uma tabela, você pode fazer isso de duas maneiras

  • Carregar mensagens individuais com chamadas para o add_text procedimentos
  • Carregue conjuntos de mensagens de uma tabela de banco de dados com o load_from_dbms procedimentos

66) Mencione qual é a utilização da função “procedimento de módulo” em PL/SQL?

O “procedimento de módulo” permite converter todas as linhas de código em uma unidade de programa definida com uma chamada de procedimento. Existem três argumentos para módulos

  • módulo_in
  • cor_in
  • Último_módulo_in

67) Mencione o que PLVcmt e PLVrb fazem em PL/SQL?

A PL/Vision oferece dois pacotes que ajudam você a gerenciar o processamento de transações em aplicativos PL/SQL. É PLVcmt e PLVrb.

  • PLVcmt: O pacote PLVcmt envolve lógica e complexidade para lidar com o processamento de commits
  • PLVrb: Ele fornece uma interface programática para reverter atividades em PL/SQL

Essas perguntas da entrevista também ajudarão em sua viva (oral)