Sumário

Search

  1. Prefácio
  2. A Linguagem de Transformação
  3. Constantes
  4. Operadores
  5. Variáveis
  6. Datas
  7. Funções
  8. Criação de funções personalizadas
  9. Referência de API da Função Personalizada

Referência de Linguagem de Transformação

Referência de Linguagem de Transformação

IS_NUMBER

IS_NUMBER

Retorna se uma string for um número válido. Um número válido consiste nas seguintes partes:
  • Espaço opcional antes do número
  • Sinal opcional (+/-)
  • Um ou mais dígitos com um ponto decimal opcional
  • Notação científica opcional, como a letra ‘e’ ou ‘E’ (e a letra ‘d’ ou ‘D’ no Windows) seguida por um sinal opcional (+/-), seguida por um ou mais dígitos
  • Espaço em branco opcional que segue o número
Os seguintes números são todos válidos:
' 100  ' '   +100' '-100' '-3.45e+32' '+3.45E-32' '+3.45d+32' (
Windows only
) '+3.45D-32' (
Windows only
) '.6804'
A porta de saída de uma expressão IS_NUMBER deve ser um tipo de dados Numérico ou de String.
Você pode usar IS_NUMBER para testar ou filtrar dados em um arquivo plano antes de gravá-lo em um destino.

Sintaxe

IS_NUMBER(
value
)
A tabela a seguir descreve o argumento para este comando:
Argumento
Requerido/
Opcional
Descrição
valor
Requerido
Deve ser um tipo de dados de String. Passa as linhas que você deseja avaliar. Você pode inserir qualquer expressão de transformação válida.

Valor de Retorno

TRUE (1) se a linha for um número válido.
FALSE (0) se a linha não for um número válido.
NULL se um valor na expressão for NULL.

Exemplos

A seguinte expressão verifica a porta ITEM_PRICE para obter números válidos:
IS_NUMBER( ITEM_PRICE )
ITEM_PRICE
RETURN VALUE
'123.00'
1 (True)
'-3.45e+3'
1 (True)
'-3.45D-3'
1 (True - Windows only)
'-3.45d-3'
0 (False - UNIX only)
'3.45E-'
0 (False)  
Incomplete number
'    '
0 (False)  
Consists entirely of blanks
''
0 (False)  
Empty string
'+123abc'
0 (False)
'  123'
1 (True)  
Leading white blanks
'123  '
1 (True)  
Trailing white blanks
'ABC'
0 (False)
'-ABC'
0 (False)
NULL
NULL
Use IS_NUMBER para testar dados antes de usar uma das funções de conversão numérica, como TO_FLOAT. Por exemplo, a expressão a seguir verifica os valores na porta ITEM_PRICE e converte cada número válido em um valor de ponto flutuante de precisão dupla. Se o valor não for um número válido, o
Serviço de Integração do PowerCenter
retornará 0.00:
IIF( IS_NUMBER ( ITEM_PRICE ), TO_FLOAT( ITEM_PRICE ), 0.00 )
ITEM_PRICE
RETURN VALUE
'123.00'
123
'-3.45e+3'
-3450
'3.45E-3'
0.00345
'    '
0.00   
Consists entirely of blanks
''
0.00   
Empty string
'+123abc'
0.00
''  123ABC'
0.00
'ABC'
0.00
'-ABC'
0.00
NULL
NULL