FC ConcursosFC Concursos

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 

  1. 0000125–40.1981.403.6100 e 24.
  2. uma mensagem de erro, pois para concatenar valores, no lugar de || deve ser usado &&.
  3. 1981.403.6100 e 24.
  4. uma mensagem de erro, já que o comando octet_length não existe.
  5. 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

Continue aprendendo