Considere que a SEMCONGER implementou um procedimento armazenado (Stored Procedure ) para atualizar valores de
contratos públicos, garantindo, assim, maior controle sobre as transações no banco de dados. A seguir está o código da
Stored Procedure utilizada:
CREATE OR REPLACE PROCEDURE atualizar_valor_contrato(
p_id_contrato IN NUMBER,
p_novo_valor IN NUMBER
) AS
BEGIN
UPDATE contratos
SET valor = p_novo_valor
WHERE id = p_id_contrato;
COMMIT;
END atualizar_valor_contrato;
Porém, um analista de banco de dados apontou um problema grave na implementação que poderá comprometer a consistência
transacional do sistema. Com base na análise do código apresentado, qual é a principal falha no procedimento armazenado?
a) A falta de um ROLLBACK , após a execução do UPDATE , pode levar a inconsistências nos contratos.
b) O uso de COMMIT , dentro da Stored Procedure , pode comprometer o controle transacional do sistema.
c) O procedimento deveria utilizar uma subquery com SELECT para validar se o contrato existe antes de atualizar.
d) O uso de IN NUMBER, como tipo dos parâmetros, pode causar erros em bancos de dados que utilizam tipos de dados dinâmicos.