1
resposta

Aparece o erro ao gravar dados na dimensão tempo

Ao executar aparece esse erro cod_mes cannot convert between Unicode Unicode and non-Unicode string data types em Comando OLE DB e Grava na dimensão quem não existe

1 resposta

Esse erro:

"cannot convert between Unicode and non-Unicode string data types"

é comum ao usar OLE DB (como no SSIS, Power BI, ou queries entre bancos diferentes) e significa que há uma incompatibilidade entre tipos de dados — especificamente entre NVARCHAR (Unicode) e VARCHAR (não-Unicode).

⚠️ Causa do erro Você está tentando comparar ou inserir valores entre colunas de tipos diferentes, como:

Comparando VARCHAR com NVARCHAR

Inserindo NVARCHAR em uma coluna VARCHAR (ou vice-versa) sem conversão

Por exemplo:

WHERE tabela1.cod_mes = tabela2.cod_mes

Se:

tabela1.cod_mes for NVARCHAR

tabela2.cod_mes for VARCHAR

→ Vai gerar erro com OLE DB.

✅ Como resolver

  1. Faça CAST ou CONVERT para o mesmo tipo Convertendo ambos os lados da comparação para o mesmo tipo (por segurança, use NVARCHAR):
WHERE CAST(tabela1.cod_mes AS NVARCHAR(10)) = CAST(tabela2.cod_mes AS NVARCHAR(10))

ou

WHERE tabela1.cod_mes = CONVERT(NVARCHAR(10), tabela2.cod_mes)