Questão FC372850
Considere as instruções SQL a seguir, digitadas no PostgreSQL 9.0, em condições ideais. CREATE TABLE processo (proc_num character(24)); INSERT INTO processo SELECT '0000125–40.' ||
Linguagem SQL
FCC · 2018
Considere as instruções SQL a seguir, digitadas no PostgreSQL 9.0, em condições ideais.
CREATE TABLE processo (proc_num character(24));
INSERT INTO processo SELECT '0000125–40.' || '1981.403.6100';
SELECT proc_num, octet_length(proc_num) FROM processo;
Será exibido na tela
- 0000125–40.1981.403.6100 e 24.
- uma mensagem de erro, pois para concatenar valores, no lugar de || deve ser usado &&.
- 1981.403.6100 e 24.
- uma mensagem de erro, já que o comando octet_length não existe.
- uma mensagem de buffer overflow.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
Ao executar CREATE TABLE processo (proc_num character(24)) é criada uma coluna de tamanho fixo 24. A expressão '0000125–40.' || '1981.403.6100' usa o operador || para concatenar as duas strings, gerando a sequência 0000125–40.1981.403.6100 cuja soma de caracteres é 24.
O INSERT grava essa string em proc_num. Como o tamanho resulta exatamente em 24, não há preenchimento nem truncamento adicional pelo tipo character(24).
A função octet_length(s) retorna o tamanho em bytes da string fornecida; sob codificação simples (cada caractere 1 byte) esse tamanho é 24. Portanto, a consulta SELECT proc_num, octet_length(proc_num) exibirá a string concatenada e o valor 24.
Conteúdo do catálogo FC Concursos · Atualizado em