9
respostas

Dúvida no Ex. 4 da Aula 1 - Consultando os dados

Quando tento importar o SQL pelo console esta dando a seguinte mensagem de erro:

ERROR 1366 (HY000) at line 30: Incorrect string value: '\xC3\x87AS' for column 'observacoes' at row 1

Acredito que seja calçado pelo 'Ç' do da observação 'Dia das Crianças', porque consultando até o evento anterior importa normalmente, porém não sei como arrumar, e importando pelo Workbench funciona normalmente.

9 respostas

Caue qual o comando que você esta utilizando para fazer a importação do arquivo .sql ?

no prompt vou até a pasta Downloads, e utilizo o comando da aula: mysql -u root -p controle_compras < cap2.sql

Esta correto o comando.

Poste a linha 30 do arquivo, pela mensagem do console deve ter algum problema em relação a uma codificação '\xC3\x87AS'.

Ola pessoal, bom dia. É muito provável que você terá que realizar configurações relacionado a codificação de linguagem do seu banco. O próprio SQLServer tem isso, no caso, chamamos de collection, no caso do MySQL preciso pesquisar como fazer isso. Posso te indicar esse link como ajuda.

Apoio de Collate MySQL

Bom dia.

A linhA 30 é essa:

insert into COMPRAS (valor, data, observacoes, recebido) values (98, '2010-10-12', 'DIA DAS CRIANÇAS', 0);

Acredito que seja por causa do 'ç'.

Felipe Portela, mas o estranho é que pelo Workbench funciona normal, só pelo cmd que dá esse erro.

Entendi. Pode ser porque no SGBD no caso o workbench os pacotes Collage estejam configurados e apontados corretamente, e via cmd não. Vamos pesquisar ;P

Caue sempre tive problemas com acentuação no MySQL e passei a criar minhas tabelas definindo seus collates e charsets:

create table tabela1 (
  // campos
) character set utf8 collate utf8_general_ci;

Feito isso e mais algumas configurações acabei não tendo mais problemas.

Matheus Castiglioni recriei a tabela definindo o collates e o charsets, ai a importação funcionou sem erro.

Porém as linhas que tinham acentuação ficaram assim :

| 30 | 98 | 2010-10-12 | DIA DAS CRIANÇAS | 0 |

| 38 | 23.78 | 2011-12-18 | LANCHONETE DO ZÉ | 1 |

Isso fazendo o select tanto no cmd quanto no workbench.

Caue tente com latin1 então:

create table tabela1 (
  // campos
) character set latin1 collate latin1_general_ci;

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software