click below
click below
Normal Size Small Size show me how
PLSQL
PLSQL Extensão do SQL
Question | Answer |
---|---|
O operador || serve para? | Concatenar |
O comando EXCEPTION indica? | Bloco de tratamento de erros |
Qual comando usado para sair de um loop. | EXIT |
Uma trigger pode evitar o INSERT em uma tabela? | Sim |
O que é o comando OR e para que significa? | Operador lógico ou |
O que é o comando AND e para que significa? | Operador lógico e |
Como podemos exibir o resultado das linhas de uma query através de loop? | Usando um cursor |
Ao exibir o resultado de um cursor na tela como podemos verificar se um cursor ainda tem dados a serem retornados antes de sair do bloco de repetição quando não houver mais linhas para exibir? | exit when NomeDoCursor%notfound |
A linguagem PLSQL é uma extensão de qual linguagem? | SQL |
A linguagem PLSQL é uma linguagem tipada? | Sim |
Com os recursos de PLSQL é possível fazer inserção, atualização ou deletar dados de uma tabela a partir da modificação de outra tabela? explique. | Sim. Utilizando uma trigger e especificando em qual evento a mesma deve ser ativada.(delete, insert update) |
Qual o tipo mais comum de variável para armazenar valores inteiros? | integer |
Qual o tipo mais comum de variável para armazenar textos? | varchar2(TAM) |
Em PLSQL toda função obrigatoriamente tem que interagir com o banco de dados? | Não |
Ao executar uma query sql podemos chamar uma função do PLSQL? | Sim |
A sintaxe do PLSQL é muito semelhante a duas linguagens quais são elas? | ADA e Pascal |
Qual o operador de atribuição no PLSQL? | := |
Em uma procedure em PLSQL é possível ter mais de uma variável que retorna resultado? | Sim |
Qual comando usado para indicar que uma variável de uma procedure retorna um valor? | OUT |
É possível ter uma variável em uma procedure que recebe e retorna um valor? | SIM |
Podemos declarar uma variável do tipo record ou seja do tipo de uma linha de determinada tabela do banco de dados? | SIM |
Quais as vantagens do PL/SQL? | -Suporte para SQL -Suporte para programação orientada a objeto -Melhor desempenho -Maior produtividade -Portabilidade completa -A forte integração com o Oracle -Forte esquema de segurança |
É um bloco estruturado, ou seja, unidades básicas(procedimentos, funções e blocos anônimos) permitindo agrupar declarações e informações relacionadas logicamente. | DECLARE --declaração de variáveis e/ou cursores BEGIN --Loop e códigos do bloco EXCEPTION -- Tratamento de erros END; -- Fechamento do bloco |
Contém grupos de personagens conhecidos como unidades lexicais , que podem ser classificados da seguinte forma: | -delimitadores (símbolos simples e compostas) -identificadores, que incluem as palavras reservadas -literais -Comentários |
Possui tipos básicos em quatro famílias: number, character, Boolean, and date/time data | -Scalar types: float, int, real, integer,positive. -Character: char, raw, string, varchar,rowid. -Boolean: boolean; -Date: timestamp,interval day to second, interval year to month. |
CREATE OR REPLACE PROCEDURE procedimento IS BEGIN INSERT INTO tempTeste SELECT * FROM faprtcad MINUS SELECT * FROM tempTeste END; EXEC procedimento; O que acontece na chamada de procedimento acima? | O procedimento insere na tabela tempTeste tudo que esta na tabela faprtcad que ainda não esta em tempTeste |
CREATE OR REPLACE FUNCTION funcao (cod VARCHAR) RETURN VARCHAR IS nomePac varchar2(100); BEGIN SELECT nome_pac INTO nomePac FROM faprtcad WHERE cod_prt = cod; RETURN nomePac; END; select funcao(000000668) from dual; O que a funçã | Ela retorna um valor DO tipo VARCHAR que esta na coluna nome_pac após atribuir o mesmo na variável nomePac |
Quantas vezes o loop do código abaixo será executado? e porque. DECLARE variavel INTEGER := 3; BEGIN IF Mod(variavel,2) = 0 THEN FOR x IN (SELECT cod_pac, data_ent FROM fapaccad WHERE cod_pac < '0000365' ) LOOP Dbms_Output.put_line( | Nenhuma. Porque Mod(variavel,2) retorna 1 |
O que será exibido na primeira e na segunda saida DO código abaixo? DECLARE a INTEGER :=10; b INTEGER :=20; BEGIN Dbms_Output.put_line(Mod(a,b)+a*b); Dbms_Output.put_line((Mod(a,b)+a)*b); END; | 210 410 |
Quantas vezes o loop abaixo será executado? FOR x IN (SELECT cod_pac, data_ent FROM fapaccad WHERE cod_pac < '0000365' AND cod_pac > '0000400') LOOP Dbms_Output.put_line(x.cod_pac || ' - ' || x.data_ent); END LOOP; | Nenhuma pois a condição cod_pac < '0000365' AND cod_pac > '0000400' nunca será satisfeita. |
O comando LPad é usado para? | Formatar uma variável a esquerda até determinado tamanho com os caracteres passados por parâmetro |
O comando RPad é usado para? | Formatar uma variável a direita até determinado tamanho com os caracteres passados por parâmetro |
3 variavel INTEGER := 10; Dbms_Output.put_line(LPad(variavel,5,0)); Será exibido na tela? | 00010 |
variavel INTEGER := 10; Dbms_Output.put_line(RPad(variavel,5,0)); Será exibido na tela? | 10000 |
o que será exibido na tela ao executar o código abaixo? DECLARE variavel INTEGER := 10; BEGIN FOR x IN 1..5 LOOP IF Mod(x,2) = 0 THEN Dbms_Output.put_line(RPad(x,5,0)); END IF; END LOOP; END; | 20000 40000 |
O loop abaixo vai exibir na tela qual resultado? FOR x IN 1..5 LOOP IF Mod(x,2) <> 0 THEN Dbms_Output.put_line(LPad(x,5,0)); END IF; END LOOP; | 00001 00003 00005 |
Para que serve o comando Mod(x,y)? | Retorna o resto da divisão de x por y |
O comando REPLACE quando usado na criação de um objeto o que ele faz? | Se o objeto já existe ele substitui o mesmo. |
quantas vezes o LOOP abaixo será executado? FOR x IN (SELECT cod_pac FROM fapaccad WHERE cod_pac < '0000365') LOOP Dbms_Output.put_line(x.cod_pac); END LOOP; | O numero de linhas que a query retornar. |
O que tem de errado no códico abaixo? FOR x IN (SELECT cod_pac FROM fapaccad WHERE cod_pac < '0000365') LOOP Dbms_Output.put_line(x.nome_pac); END LOOP; | Dentro DO Dbms_Output.put_line ele tenta imprimir o que esta na coluna nome_pac mas a mesma não esta na query executada no loop |
Suporta expressões regulares? | Suporta um ajuste de funções regulares em que o acesso é feito do mesmo modo que nos statementes SQL ou nas unidades de programa PL/SQL : REGEXP_LIKE,REGEXP_INSTR, REGEXP_SUBSTR, REGEXP_REPLACE. |
Como é a citação alternativa? | Permite substituir a família aspas por outro simbolo de citação.Isto é quando tiver uma quantidade de apóstrofes em uma string que exige, individualmente, citação anterior com outra citação simples. |
É possível um STACK TRACING de erros? | Sim, produzindo uma lista de erros de chamada inicial para o local onde o erro foi lançado. |
O que é profiler hierárquico? | Permite ver como todos componentes em uma aplicação atuam. Isto difere de um profiler não hierárquico(flat) que simplesmente grava o tempo gasto em cada módulo. |
O compilador nativo PL/SQL gera código nativo? | Sim, o código nativo é compilado dentro de uma forma intermediaria antes de ser reduzida a um código especifico da maquina. |
Permite pacotes embutidos(Built-in)? | Sim, sendo os principais: BDMS_SCHEDULER, BDMS_CRYPTO, BDMS_MONITOR. |
Como é possível ter uma ideia do desempenho do seus programas? | Através da ativação do parâmetro PLSQL_WARNINGS. Codigo: ALTER SESSION SET plsql_warnings = `enable:all; |
O que é o comportamento do Número Datatipo? | Eles trabalham como o NUMBER datatipo e usavam a mesma biblioteca matemática C ,agora usam a mesma resolução que o datatipo BYNART_INTEGER. |
É possível usar compilação condicional? | Sim, permite incluir lógica de purificação ou lógica de propósitos especiais que funcionam apenas quando as variáveis nível-sessão estão ajustadas |
O compilador PL/SQL é otimizado? | Sim, é ajustado de forma padrão e se aplica tanto ao código-p interpretado quanto ao código PL/SQL compilado nativamente.É possível desativar a sessão otimização usando : ALTER SESSION SET plsql_optimize_level = 0; |