

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Qual a sintaxe para criar um procedimento em PL/SQL?
CREATE PROCEDURE
nome_procedimento
CREATE PROCEDIMENTO
nome_procedimento
CREATE FUNCTION
nome_procedimento
CREATE PROCEDURE nome_function
CREATE FUNCTION nome_function
Considere os comandos SQL abaixo.
I. INSERT INTO Advogado (numeroOABAdv, nomeAdv) VALUES ('59.445', 'Paulo Vieira Lima');
II. INSERT INTO Advogado VALUES ('28E418', 'Ana Maria Fonseca');
III. INSERT INTO Advogado ('21X400', 'Marcos Moreira Costa');
IV. INSERT INTO Advogado FIELDS(numeroOABAdv, nomeAdv) VALUES ('01.342', 'Mariana Freitas Caetano');
Os comandos que inserem corretamente dados na tabela Advogado são os que constam APENAS em
I e II.
I, II e III.
I e IV.
II e III.
III e IV.
Assinale a alternativa que apresenta uma forma adequada, na linguagem PL/pgSQL, de selecionar dados do banco de dados e atribuí-los a uma variável.
take count(*) as qtd_filmes from filme;
select count(*) set qtd_filmes from filme;
select count(*) into qtd_filmes from filme;
set count(*) to qtd_filmes from filme;
set qtd_filmes = count(*) from filme;
Considerando as procedures e functions na linguagem PL/SQL, analise as afirmações a seguir:
I-Tanto functions como procedures podem retornar um valor ou não.
II-Os parâmetros podem ser do tipo "IN", "OUT" ou "IN OUT". Sendo que casa não informado o valor padrão é "IN".
III-Ao se chamar a procedure "proc" com um único parâmetro do tipo IN, a chamada "proc(var)" nunca vai alterar o valor da variável "var" externamente.
É correto o que se afirma em:
II, apenas.
I, apenas.
II e III, apenas.
III, apenas.
I, II e III.
Qual o operador de atribuição em PL/SQL, a partir do qual podem-se atribuir valores a variáveis?
==
=
:=
>
is
Considere a linguagem PL/SQL utilizada no Sistema Gerenciador de Bancos de Dados Oracle 21c. Suponha que tenha sido criada uma variável cuja declaração limite seu tamanho a 3 caracteres. Se houver a tentativa de atribuir um valor com mais de 3 caracteres a essa variável, ocorrerá
a geração de uma mensagem de aviso para que o usuário redefina o valor a ser atribuído.
a geração de uma mensagem de erro.
a inserção do valor Null, em lugar do valor com mais de 3 caracteres.
um aumento automático desse tamanho máximo, acompanhado de uma mensagem de aviso.
um corte do número de caracteres desse valor, até atingir 3 caracteres.
Analise as seguintes afirmativas em relação aos diversos tipos de Banco de Dados:
1. MongoDB é um banco de dados NoSQL que usa documentos em vez de tabelas para armazenar dados.
2. o PostgreSQL é o único banco de dados que não suporta as cláusulas do SQL padrão e usa uma sintaxe proprietária.
3. MySQL é um dos sistemas de gerenciamento de banco de dados relacional que é de código aberto.
4. o PL/SQL é uma extensão da linguagem SQL criada especificamente para ser usada no Oracle.
Da relação apresentada:
somente as afirmativas 1, 2 e 3 são verdadeiras
somente as afirmativas 1, 2 e 4 são verdadeiras
somente as afirmativas 2, 3 e 4 são verdadeiras
somente as afirmativas 1, 3 e 4 são verdadeiras
Considere a expressão PL/SQL de um banco de dados Oracle 19 aberto e funcionando em condições ideais:
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
A função equivalente a essa expressão é:
COALESCE(expr1, expr2)
CHR(expr1, expr2)
COMPOSE(expr1, expr2)
COLLATION(expr1, expr2)
COLLECT(expr1, expr2)
Considere a seguinte tabela de um banco de dados relacional:
Produto (ID_Prod, Nome, Estoque)
Considere que previamente foi criada uma variável denominada item, do tipo caractere, assim como o atributo Nome. O comando do PL/SQL para atribuir a essa variável o nome do produto de ID igual a 200 é:
item = SELECT Nome
FROM Produto
WHERE ID_Prod = 200;
MAKE item AS SELECT Nome
FROM Produto
WHERE ID_Prod = 200;
SELECT Nome INTO item
FROM Produto
WHERE ID_Prod = 200;
MAKE Nome INTO item
FROM Produto
WHERE ID_Prod = 200;
INCLUDE IN item Nome
FROM Produto
WHERE ID_Prod = 200;
O comando do PL/SQL do Oracle 21c que permite desfazer as operações feitas em uma transação é:
ROLLBACK;
GRANT;
PURGE;
REVOKE;
DROP OPERATOR;
Considerando o uso do sistema gerenciador de banco de dados MySQL, para criar a tabela Advogado_Processo, utiliza-se a instrução SQL:
CREATE TABLE Advogado_Processo (
numeroOABAdv VARCHAR(6) NOT NULL,
numeroProc VARCHAR(13) NOT NULL,
papel VARCHAR(20),
PRIMARY KEY (numeroOABAdv, numeroProc),
FOREIGN KEY (numeroOABAdv)
REFERENCE Advogado(numeroOABAdv),
FOREIGN KEY (numeroProc)
REFERENCE Processo(numeroProc)
);
CREATE TABLE Advogado_Processo (
numeroOABAdv VARCHAR(6) NOT NULL,
numeroProc VARCHAR(13) NOT NULL,
papel VARCHAR(20),
PRIMARY KEY (numeroOABAdv, numeroProc),
FOREIGN KEY (numeroOABAdv)
CONSTRAINT Advogado(numeroOABAdv),
FOREIGN KEY (numeroProc)
CONSTRAINT Processo(numeroProc)
);
CREATE TABLE Advogado_Processo (
numeroOABAdv VARCHAR(6) NOT NULL,
numeroProc VARCHAR(13) NOT NULL,
papel VARCHAR(20),
PRIMARY KEY (numeroOABAdv, numeroProc),
FOREIGN KEY (numeroOABAdv)
REFERENCES Advogado(numeroOABAdv),
FOREIGN KEY (numeroProc)
REFERENCES Processo(numeroProc)
);
CREATE TABLE Advogado_Processo (
numeroOABAdv VARCHAR(6) NOT NULL,
numeroProc VARCHAR(13) NOT NULL,
papel VARCHAR(20),
PRIMARY KEY (numeroOABAdv, numeroProc),
FOREIGN KEY (numeroOABAdv)
FROM Advogado(numeroOABAdv),
FOREIGN KEY (numeroProc)
FROM Processo(numeroProc)
);
CREATE TABLE Advogado_Processo (
numeroOABAdv VARCHAR(6) NOT NULL,
numeroProc VARCHAR(13) NOT NULL,
idPet INT NOT NULL,
PRIMARY KEY (numeroOABAdv, numeroProc),
FOREIGN KEY (numeroOABAdv),
FOREIGN KEY (numeroProc)
);
Analise as afirmativas abaixo sobre as funções de tabela em PL/SQL.
1. São usadas para retornar coleções PL/SQL que simulam ou se comportam como tabelas.
2. Podem ser consultadas como uma tabela regular, utilizando o operador de tablela TABLE da cláusula FROM.
3. Funções de tabela regulares requerem que coleções sejam totalmente populadas antes que sejam retornadas.
Assinale a alternativa que indica todas as afirmativas corretas.
É correta apenas a afirmativa 1.
São corretas apenas as afirmativas 1 e 2.
São corretas apenas as afirmativas 1 e 3.
São corretas apenas as afirmativas 2 e 3.
São corretas as afirmativas 1, 2 e 3.
PL/SQL é uma linguagem processual projetada especificamente para incluir instruções SQL em sua sintaxe. Analise as afirmações a seguir:
I-PL/SQL é uma linguagem estruturada em blocos. Um bloco PL/SQL é definido pelas palavras-chave DECLARE, BEGIN, RAISE_EXCEPTION e END.
II-DECLARE é a estrutura onde se declaram variáveis, constantes e outros elementos de código. Já a estrutura RAISE_EXCEPTION permite capturar ou lançar qualquer exceção durante a execução do programa.
III-O banco de dados Oracle 12c efetua o ROLLBACK automaticamente de uma transação PL/SQL quando o programa é encerrado de forma inesperada.
É correto o que se afirma em:
II, apenas.
I, apenas.
I e II, apenas.
III, apenas.
I, II e III.
Considerando a linguagem PL/SQL, em uma procedure ou function, a forma de declarar a variável "aux" que representa um registro com os campos da tabela Empregado é:
aux Empregado.TYPE
aux Empregado%ROWTYPE
var aux := TYPEOF Empregado
Empregado%TYPE aux
Empregado aux
O PL/SQL comporta diversas expressões em seus comandos. Há algumas expressões que necessitam utilizar os chamados delimitadores. Em particular, os delimitadores de concatenação e de exponenciação são, respectivamente,
& e %
|| e #
** e !
“ “ e &
|| e **
Em um banco de dados Oracle, um analista utilizou um comando que retornou, da tabela Processo, os dados mostrados abaixo.
Ano
2017
2022
2014
2022
O comando utilizado pelo analista foi
SELECT SUBSTR(numeroProc,-4,4) AS Ano FROM Processo;
SELECT SUBSTRING(-4,4,numeroProc) AS Ano FROM Processo;
SELECT SUBSTR(numeroProc,4,10) AS Ano FROM Processo;
SELECT SUBSTRING(10,4,numeroProc) AS Ano FROM Processo;
SELECT SUBSTRING(numeroProc from 9 for 4) AS Ano FROM Processo;
Analise o comando a seguir.
SELECT * FROM T1 FULL OUTER JOIN T2 ON T1.A=T2.A
Sabe-se que a coluna A foi definida como chave primária tanto em T1 como em T2, e que T1 e T2 contêm, respectivamente, 20 e 30 linhas.
Assinale a opção que apresenta a estimativa do número de linhas produzidas pela execução do comando acima.
20, exatamente.
30, exatamente.
600, exatamente.
Entre 20 e 30.
Entre 30 e 50.
Considere que em um banco de dados Oracle 19c, aberto e funcionando em condições ideais, exista a tabela TRTVaras:
CodCidade-----Jurisdicao
32------------Picos
11------------Teresina
21------------Parnaíba
17------------Teresina
33------------Picos
25------------Parnaíba
Para que as cidades cujos CodCidade comecem com 2 tenham a Jurisdicao alterada de Parnaíba para Teresina, deve-se utilizar o seguinte comando PL/SQL:
UPDATE TRTVaras SET Jurisdicao = 'Teresina' WHERE REGEXP_LIKE (CodCidade, '^2(*)');
UPDATE TRTVaras SET Jurisdicao = 'Teresina' WHERE REGEXP_LIKE (CodCidade, '2%');
UPDATE TRTVaras SET Jurisdicao = "Teresina" WHERE LIKE (CodCidade, "2%");
UPDATE TRTVaras WHERE Jurisdicao = 'Parnaíba' SET INTO 'Teresina';
UPDATE TRTVaras WHERE REGEXP_LIKE (CodCidade, '^2(*)' SET Jurisdicao = 'Teresina');
Considere o script Oracle PL/SQL a seguir.
DECLARE var_x(2);
BEGIN
--UPDATE calendario
--SET dia = dia + 1;
--IF ....... THEN
----dbms_output.put_line('Zero alterados.');
--ELSIF ....... THEN
----var_x:= ....... ;
----dbms_output.put_line(var_x || ' alterados.');
--END IF;
END;
Para que esse script funcione corretamente, os três trechos pontilhados devem ser substituídos, na ordem em que aparecem, por
.EMPTY / .OK / .RECORD_COUNT
.NOTFOUND / .FOUND / .COUNT
_NOTFOUND / _FOUND / _COUNT
SQL%NOTFOUND / SQL%FOUND / SQL%ROWCOUNT
SQL:EMPTY / SQL:OK / SQL:ROWCOUNT
Analise o código Oracle PL/SQL.
DECLARE
s_mat aluno.matricula%type;
s_nom aluno.nome%type;
s_cur aluno.curso%type;
CURSOR cur_alunos is
...;
BEGIN
OPEN cur_alunos;
LOOP
FETCH cur_alunos
into s_mat, s_nom, s_cur;
EXIT WHEN cur_alunos%notfound;
dbms_output.put_line(s_mat || ' ' ||
s_nom || ' ' ||
s_cur);
END LOOP;
CLOSE cur_alunos;
END;
/
Assinale a opção que apresenta o trecho que deve substitui corretamente os pontos “...” na sexta linha do código.
GET aluno
IMPORT FROM aluno TO cur_alunos
READ FROM aluno
SELECT matricula, nome, curso FROM aluno
WITH * FROM aluno