Eu tenho um arquivo .sql com alguns comandos SQL "Insert into" simples que estão sendo inseridos em uma tabela chamada Künstler.
insert into Künstler (name) values ('Mariah Carey');
insert into Künstler (name) values ('Michael Jackson');
No entanto, ao executar o arquivo através do Putty para executar todos esses comandos, cada linha é recebida com um erro;
During SQL processing it returned:
SQL0007N The following on "insert into K" mark "▒" is invalid.
Parece que os caracteres do trema alemão estão sendo transformados em '▒'
Eu ativei o UTF-8 no Putty e os comandos funcionarão se inseridos manualmente, mas não como um lote. Existe algum trabalho por aí?
Para informações adicionais, o idioma que estou usando é o DB2.
Respostas:
A execução de um script no PuTTY não é afetada por nenhuma das configurações do PuTTY. Isso dependeria apenas da codificação (conjunto de caracteres) do script e das configurações de localidade (assim como da codificação do banco de dados - e da maneira como ele lê os scripts).
Quando você digita no teclado usando o PuTTY, isso depende das configurações do PuTTY para o teclado.
Em vez de procurar uma correção no PuTTY, você poderá definir a página de código do aplicativo (mencionada na referência do DB2 ) para UTF-8 (página 1208 de acordo com a Noções básicas sobre conversão de caracteres do DB2 Universal Database ). De acordo com Derivação dos valores da página de códigos , isso deve ocorrer automaticamente se o seu código do idioma estiver definido corretamente.
fonte
A solução acabou sendo bastante simples. Eu estava escrevendo o script no bloco de notas ++ e havia definido o arquivo com a codificação incorreta. A troca da codificação do ANSI padrão para UTF-8 resolveu o problema.
Isso pode ser feito através de Codificação -> Codificação em UTF-8 sem BOM.
fonte