Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
eliasneif
Contributor III
Contributor III

No extrator de uma tabela Oracle, esta colocando zero a esquerda de um atributo varchar(20).

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_NOTAMOIF_NM_NOTA_PRINCIPALMOIF_NM_LOTE
0021928000000000000000000007356475
21928000000000000000000007356475
219287356475
00219287356475
00219287356475
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

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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()

furtado@farolbi.com.br

View solution in original post

6 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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()

furtado@farolbi.com.br
pablolabbe
Luminary Alumni
Luminary Alumni

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.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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.

furtado@farolbi.com.br
eliasneif
Contributor III
Contributor III
Author

Bom dia!

Utilizei o Text()  e resolveu o problema.

Obrigado.

eliasneif
Contributor III
Contributor III
Author

Bom dia!

Utilizei o Text()  e resolveu o problema.

Obrigado.

pablolabbe
Luminary Alumni
Luminary Alumni

Esse campos char que guardam numerico sempre dão dor de cabeça..