Inquiridor
Converter Varchar em Char ou Vice versa

Pergunta
-
Ola, bom dia..
Gostava que me tirassem um duvida. Estou utilizando o SSIS e no processo ETL estou a realizar o carregamento do meu Data Mart... NO entanto deparei-me com um problema chato, mesmo chato. É o seguinte, eu depois de carregar a minha tabela dimensão Produto (IDProduto int (Incremental), e CodProduto CHAR(40), ...) para cada código de produto ele criar um ID. mas aqui nenhum problema. O problema é que ao comparar o CodProduto com o CodProduto (Varchar18) de uma outra tabela que vai dar origem a tabela de factos, nao está dando para comparar, e ao carregar a tabela de factos aparece IDProduto = NULL.
Isto acontece porque o tipo de dados, do codigoprodutoé diferente nas duas tabelas. Ja coloquei antes do MERGE JOIN, um data convert para cada um, de modos a colocar no mesmo tipo de dados, mas continua a não da na mesma.
Alguem sugere alguma coisas para conseguir resolver este problema.
- Editado sql-enthusiast segunda-feira, 16 de janeiro de 2012 11:32
- Movido Gustavo Maia Aguiar segunda-feira, 16 de janeiro de 2012 13:25 (De:SQL Server - Desenvolvimento Geral)
Todas as Respostas
-
Cara, não sei se ajuda, mas sempre que vou comparar campos da classe char (char, varchar, nchar, nvarchar, etc.) costumo utilizar a função UPPER() para tirar eventuais problemas com maiúsculas e minúsculas.
Vê se soluciona o problema.
Abraços.
Carlos Eduardo B Martins Junior
e-mail: kdu.bmartins@gmail.com
skype: cmartins.othink -
-
-
-
ja resolvi acho, com o rtrim
- Sugerido como Resposta Kdu Bonalume terça-feira, 17 de janeiro de 2012 11:50
-
Boa. Mas pensa bem se é realmente necessário que seus campos de código sejam da família CHAR... Se for sempre um numeral, é mais confiável e padronizado usar algo da família INT.
Abraços.
Carlos Eduardo B Martins Junior
e-mail: kdu.bmartins@gmail.com
skype: cmartins.othink