Questões de Concurso
Comentadas sobre pl-sql em banco de dados
Foram encontradas 300 questões
Considere a seguinte subrotina PL/SQL:
CREATE OR REPLACE PROCEDURE decisao (a IN REAL, b IN REAL) IS x REAL;
BEGIN
x := a + b;
IF (x > 10)
THEN DBMS_OUTPUT.put_line (x);
ELSE DBMS_OUTPUT.put_line (‘Valor inferior ao limite’);
END IF;
END;
/
Tendo sido esta rotina implementada no Oracle Database 10g Express Edition no Windows, já executada a linha de comandos SQL que dá acesso ao banco de dados, é correto afirmar que
O uso da cláusula INTO no comando SELECT, dentro de um programa PL/SQL, permite transferir o conteúdo dos campos de uma linha de tabela para variáveis de memória.
Diferentemente de uma função que não retorna resultados, uma stored procedure executa comandos e retorna um resultado que é armazenado nas variáveis da seção DECLARE.
A primeira seção de um bloco PL/SQL, chamada de declaração, é opcional. Contudo, se o bloco usar variáveis ou constantes, todas elas devem ser previamente declaradas antes de serem determinadas em um comando.
Em um bloco PL/SQL, as variáveis podem assumir qualquer tipo de datatype das linguagens SQL e Oracle, exceto os tipos Positive, Natural, Boolean e Binary Integer.
O Postgres Plus Advanced Server da EnterpriseDB pode executar aplicações escritas para bancos de dados Oracle, por intermédio do núcleo do PostgreSQL modificado, para reconhecer Oracle PL/SQL.
( ) Variáveis booleanas em PL/SQL podem conter os valores TRUE, FALSE ou NULL.
( ) Para declarar um registro com a mesma estrutura de um registro de uma tabela é possível utilizar o atributo %ROWTYPE.
( ) Funções e procedimentos armazenados permitem a defnição de parâmetros do modo IN somente, ou seja somente de entrada.
( ) Na chamada de uma função ou procedimento armazenado somente é possível indicar a associação entre parâmetros reais e formais pela notação posicional (positional notation). Essa associação não pode ser baseada em notação nomeada (named position).
Está CORRETA a seguinte sequência de respostas:
CREATE TABLE VALORES (ID INT NOT NULL PRIMARY KEY,VALOR INT);
INSERT INTO VALORES VALUES (1,5); INSERT INTO VALORES VALUES (1,6); INSERT INTO VALORES VALUES (NULL,7); INSERT INTO VALORES VALUES (2,1); INSERT INTO VALORES VALUES (2,8); INSERT INTO VALORES VALUES (3,9); INSERT INTO VALORES VALUES (NULL,10); SELECT COUNT(VALOR) FROM VALORES WHERE VALOR >= 5;
A consulta retornará o valor
SELECTp.nome, p.sobrenome, c.modelo
FROMpessoas p LEFTOUTERJOINcarros c
ONp.carro_id = c.carro_id
CREATE TABLE func_temp AS SELECT func_id, nome, sobrenome FROM func; CREATE TABLE func_temp2 AS SELECT func_id, nome, sobrenome FROM func;
CREATE TABLE func_temp2 AS SELECT func_id, nome, sobrenome FROM func;
DECLARE
sequencial NUMBER;
BEGIN
sequencial := func_seq.NEXTVAL;
DBMS_OUTPUT.PUT_LINE ('Valor Sequencial Inicial: ' ||
TO_CHAR(sequencial));
INSERT INTO func_temp VALUES (func_seq.NEXTVAL,
'Carolina', 'Novaes');
-- Insere em func_temp2 o mesmo sequencial inserido em func_temp
INSERT INTO func_temp2 VALUES (func_seq.NEXTVAL, 'Antonio', 'Novaes');
DELETE FROM func_temp2 WHERE func_id = func_seq.CURRVAL;
UPDATE func_temp SET func_id = func_seq.NEXTVAL
WHERE nome = 'Carolina'AND sobrenome = 'Novaes'; sequencial := func_seq.CURRVAL;
DBMS_OUTPUT.PUT_LINE ('Valor Sequencial Final: ' ||
TO_CHAR(sequencial));
END;
/
INSERT INTO Func VALUES (10,'Clarice',3200);
SAVEPOINT a;
INSERT INTO Setor VALUES (13,'Sales','Hyd');
SAVEPOINT b;
INSERT INTO Grade VALUES ('III',2300,4500);
ROLLBACK TO a:
Se em seguida for executado o comando COMMIT, serão gravados os valores nas tabelas: