Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde!
Estamos com o seguinte problema no extrator de uma tabela do banco de dados Oracle. Abaixo segue as telas com o que tem na tabela oracle e com o resultado do extrator.
1. Tabela Oracle.
. script
SELECT
"MOIF_NM_NOTA", --// [NR_NOTA]
"MOIF_NM_NOTA_PRINCIPAL", -- [NR_NOTA_PRINCIPAL]
"MOIF_NM_LOTE" --, //[NR_LOTE]
FROM "MOVIMENTACAO_ITEM_FATURA"
where LANC_CD_ID = '323676' and MOIF_NM_NOTA like '%21928';
. Resultado
MOIF_NM_NOTA | MOIF_NM_NOTA_PRINCIPAL | MOIF_NM_LOTE |
0021928 | 00000000000000000000 | 7356475 |
21928 | 00000000000000000000 | 7356475 |
21928 | 7356475 | |
0021928 | 7356475 | |
0021928 | 7356475 | |
0021928 | 7356475 |
2. Extrator.
. Script
TRACE ============== CONECTANDO BANCO UNION PRODUÇÃO ==============;
OLEDB CONNECT TO [Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=union_prod;Data Source=unionprod;Extended Properties=""] (XPassword is BadYYaZNJbbcGYJOPDZCDZMGYF);
TRACE ================== CARREGANDO MOVIMENTAÇÃO ITEM FATURA =====================;
//-------- Start Multiple Select Statements ------
MOVIMENTACAO_ITEM_FATURA:
SQL SELECT "MOIF_NM_LOTE",
"MOIF_NM_NOTA",
"MOIF_NM_NOTA_PRINCIPAL"
FROM "UNION_PROD"."MOVIMENTACAO_ITEM_FATURA"
where LANC_CD_ID = '323676' and to_char(MOIF_NM_NOTA) like '%21928';
STORE MOVIMENTACAO_ITEM_FATURA INTO $(vEXTRAIDOS)MOVIMENTACAO_ITEM_FATURA.QVD;
DROP TABLE MOVIMENTACAO_ITEM_FATURA;
exit script;
. Resultado,
MOIF_NM_NOTA
0021928
0021928
0021928
0021928
0021928
0021928
observação: Se alterarmo o script para pegar só a nota '21928' o resultado é sem os zeros a esquerda.
MOIF_NM_NOTA
0021928
0021928
Elias,
eu forçaria colocar como num()
LOAD
"MOIF_NM_LOTE",.
num("MOIF_NM_NOTA") as "MOIF_NM_NOTA",
"MOIF_NM_NOTA_PRINCIPAL"
SQL SELECT "MOIF_NM_LOTE",
"MOIF_NM_NOTA",
"MOIF_NM_NOTA_PRINCIPAL"
FROM "UNION_PROD"."MOVIMENTACAO_ITEM_FATURA"
where LANC_CD_ID = '323676' and to_char(MOIF_NM_NOTA) like '%21928';
STORE MOVIMENTACAO_ITEM_FATURA INTO $(vEXTRAIDOS)MOVIMENTACAO_ITEM_FATURA.QVD;
DROP TABLE MOVIMENTACAO_ITEM_FATURA;
faria isto nas duas tabelas.....se é que eu entendi que o zero esta ferrando a unificação.......Se for o contrario, usar o text()
Elias,
eu forçaria colocar como num()
LOAD
"MOIF_NM_LOTE",.
num("MOIF_NM_NOTA") as "MOIF_NM_NOTA",
"MOIF_NM_NOTA_PRINCIPAL"
SQL SELECT "MOIF_NM_LOTE",
"MOIF_NM_NOTA",
"MOIF_NM_NOTA_PRINCIPAL"
FROM "UNION_PROD"."MOVIMENTACAO_ITEM_FATURA"
where LANC_CD_ID = '323676' and to_char(MOIF_NM_NOTA) like '%21928';
STORE MOVIMENTACAO_ITEM_FATURA INTO $(vEXTRAIDOS)MOVIMENTACAO_ITEM_FATURA.QVD;
DROP TABLE MOVIMENTACAO_ITEM_FATURA;
faria isto nas duas tabelas.....se é que eu entendi que o zero esta ferrando a unificação.......Se for o contrario, usar o text()
Oi Alessandro,
Acho que no caso dele, teria que usar o text() ao inves de num() por que ele quer manter o dado no mesmo formato da base.
Oi Elias, o Qlikview converte automaticamente o dado para numero se ele for válido, mesmo que o datatype do campo da tabela seja do tipo que armazena strings além de assumir a máscara do primeiro registro que ele lê. Por isso que ele assumiu uma máscara '000000' para o campo colocando zeros a esquerda, mesmo quando eles não existem no dado original.
Pablo,
falei em num() pois estes tempos em uma base Protheus lendo duas tabelas, uma vinha com zeros na frente e a outra sem, tentei o text() mas o campo que não vinha com zero continuou sem zeros e ai usei o num() para retirar do outro e assim poderem os dois campos ficarem iguais.
Bom dia!
Utilizei o Text() e resolveu o problema.
Obrigado.
Bom dia!
Utilizei o Text() e resolveu o problema.
Obrigado.
Esse campos char que guardam numerico sempre dão dor de cabeça..