O que é PL/SQL e qual a sua relação com o SQL?
PL/SQL (Procedural Language SQL) é uma extensão procedural da linguagem SQL, desenvolvida pela Oracle. Ela permite a criação de programas completos dentro do ambiente Oracle, combinando a manipulação de dados do SQL com recursos de programação como loops e condicionais.
Quais as vantagens de usar PL/SQL em vez de SQL puro?
PL/SQL oferece maior poder e flexibilidade ao SQL, permitindo a criação de programas estruturados com controle de fluxo, tratamento de exceções e orientação a objetos. Além disso, a execução dentro do próprio banco de dados Oracle torna as aplicações mais eficientes e confiáveis, especialmente ao manipular grandes volumes de dados.
Quais são as principais diferenças entre SQL e PL/SQL?
SQL é uma linguagem declarativa padrão ANSI, utilizada para recuperar e manipular dados em diversos bancos de dados relacionais. PL/SQL, por outro lado, é uma linguagem imperativa proprietária da Oracle, que estende o SQL com recursos de programação, permitindo a criação de programas completos dentro do ambiente Oracle.
O PL/SQL é uma linguagem padrão?
Não, o PL/SQL não é uma linguagem padrão. É uma tecnologia exclusiva da Oracle, uma linguagem proprietária que só pode ser utilizada dentro de ferramentas da Oracle.
Quais os benefícios de usar PL/SQL em termos de desempenho e confiabilidade?
PL/SQL oferece melhor desempenho por ser executado dentro do próprio Oracle, evitando o tráfego de dados para fora do banco. Além disso, a integração com o SQL e o ambiente controlado do Oracle tornam o PL/SQL mais confiável, reduzindo a ocorrência de bugs e comportamentos inesperados.
Desde quando o PL/SQL existe e como ele evoluiu?
O PL/SQL foi lançado pela primeira vez na versão 6.0 do Oracle, em 1991, e desde então tem recebido melhorias e novas funcionalidades em cada nova versão do banco de dados Oracle.
Quais são alguns exemplos de comandos SQL que podem ser usados dentro de um programa PL/SQL?
Dentro de um programa PL/SQL, você pode usar comandos SQL como INSERT, UPDATE, DELETE, SELECT e CREATE para manipular dados e objetos do banco de dados.
Por que o PL/SQL é considerado mais durável do que outras linguagens em relação à manutenção e atualizações do sistema?
Códigos escritos em PL/SQL tendem a ser mais duráveis porque não exigem muita manutenção, mesmo quando a versão do Oracle é atualizada ou o ambiente é alterado. Isso ocorre porque o PL/SQL é executado dentro do próprio Oracle, o que o torna independente do sistema operacional e de outras dependências externas.
O que significa dizer que o SQL é uma linguagem declarativa?
Significa que, em SQL, você especifica o que você quer obter, e não como obter. Você declara o resultado desejado, e o banco de dados determina a melhor maneira de executar a consulta.
O PL/SQL pode ser usado em outros bancos de dados além do Oracle?
Não, o PL/SQL é uma linguagem proprietária da Oracle e só pode ser usada em bancos de dados Oracle e outras ferramentas da Oracle.
Quais são as três palavras-chave que formam a estrutura básica de um programa PL/SQL?
DECLARE, BEGIN e END.
Qual a finalidade da seção DECLARE em um programa PL/SQL?
Definir os componentes de trabalho, como variáveis, constantes e outros tipos de estruturas.
O que acontece na seção BEGIN de um programa PL/SQL?
Manipulação dos componentes de trabalho declarados, utilizando um fluxo lógico de programação e comandos SQL.
Qual a função do comando dbms_output.put_line()?
Exibe o conteúdo de uma variável ou texto na área de saída do PL/SQL.
Por que é necessário usar o comando SET SERVEROUTPUT ON; antes de executar um programa PL/SQL que utiliza dbms_output.put_line()?
Para habilitar o Oracle a escrever na área de saída, permitindo que os resultados do dbms_output.put_line() sejam exibidos.
Qual a sintaxe para declarar uma variável chamada nome_aluno do tipo VARCHAR2 com tamanho máximo de 100 caracteres?
nome_aluno VARCHAR2(100);
Como declarar uma constante chamada PI com o valor de 3.14159?
PI CONSTANT NUMBER := 3.14159;
Dentro do bloco BEGIN, como você atribuiria o valor ‘João’ à variável nome_aluno declarada anteriormente?
nome_aluno := ‘João’;
Como você usaria dbms_output.put_line() para exibir o valor da variável nome_aluno dentro do bloco BEGIN?
dbms_output.put_line(nome_aluno);
Qual a função do ponto e vírgula (;) após a palavra-chave END em um bloco PL/SQL?
Indica o fim do bloco PL/SQL e é obrigatório para a execução correta do código.
Qual o propósito do comando SET SERVEROUTPUT ON no SQL*Plus ou SQL Developer?
Habilitar a exibição de saída do DBMS_OUTPUT no console.
O que acontece se você executar um bloco PL/SQL com DBMS_OUTPUT.PUT_LINE sem antes executar SET SERVEROUTPUT ON?
O bloco PL/SQL será executado, mas a saída do DBMS_OUTPUT.PUT_LINE não será exibida no console.
SET SERVEROUTPUT ON SIZE 1000000 é um comando válido? Se sim, qual o seu efeito?
Sim, é válido. Define o tamanho máximo do buffer para a saída do DBMS_OUTPUT para 1000000 bytes.
O comando SET SERVEROUTPUT ON precisa ser executado apenas uma vez por sessão?
Geralmente sim, a menos que a configuração seja desativada ou a sessão seja encerrada.