1
resposta

[Dúvida] Descobrir onde está o erro PL/SQL

A questão do conteúdo explicado é para identificar onde está erro no script abaixo:

SET SERVEROUTPUT ON;
DECLARE
   v_ID VARCHAR(10) := 'Novo programa PL/SQL';
BEGIN 
   dbms_output.put_line(v_ID);
   v_ID := 2 ;
   dbms_output.put_line(v_ID);
END;

Para mim, foi mostrado que essa alternativa que estava correta:

A variável v_ID foi declarada com um tamanho menor que o inicializado.

Mas, além de ser declarada com um número menor, o tipo é totalmente diferente.

Solicitei uma melhor explicação para Luri, foi me retornado que a resposta correta é :

A variável v_ID deve ser declarada como NUMBER.

Então, ambas respostas são corretas, certo ?

1 resposta

Oi Rosana, tudo bem?

Na verdade, você está correta em observar que a variável está com o tipo de dado diferente do que foi declarado. No entanto, ao executar esse comando, com alteração do tamanho do varchar permitindo uma cadeia de caracteres maior, ele não gerará erro.

captura de etala da execução do código. A mensagem emitida é statement processed

Isso acontece porque o Oracle possui um mecanismo de conversão de tipos implícita. Quando atribuímos um valor numérico a uma variável do tipo VARCHAR, o PL/SQL converte automaticamente o número para uma string. Permitindo, assim, armazenar uma cadeia de caracteres alfanuméricos.

No entanto, embora isso funcione na prática, não é uma boa prática de programação, pois pode levar a confusões e erros difíceis de depurar. Como a questão solicitou apenas as alternativas que geram erro, a alternativa b não será incluída.

Espero ter esclarecido.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!