terça-feira, 31 de maio de 2016

Informatica Powercenter - Comparação com valor Nulo / Comparing with null value

Um ponto que devemos prestar atenção utilizando o Informatica Powercenter é comparando uma coluna com outra. Pois caso alguma das colunas tenha valor nulo a comparação não será feita.

Por Ex:

Tabela 1
Coluna 1(País)               Coluna 2(Capital)
Brasil                               Rio de Janeiro
Estados Unidos               Washington
Austrália                          NULL

Tabela 2
Coluna 3(País)               Coluna 4(Capital)
Brasil                               Brasília
Estados Unidos               Washington
Austrália                          Camberra

O nosso objetivo é atualizar a tabela 1 conforme a tabela 2. Para isso faremos o seguinte tratamento de update:

Coluna 1(País)=Coluna 3(País) AND
Coluna 2(Capital)!=Coluna 4(Capital)

Com esse tratamento o resultado final da tabela 1 fica assim:

Tabela 1
Coluna 1(País)               Coluna 2(Capital)
Brasil                               Brasília
Estados Unidos               Washington
Austrália                          NULL

É alterada a capital do Brasil, mas não a da Austrália. Devido o valor da Coluna 2(Capital) na Tabela 1 ser NULL. Vejo duas possíveis Soluções:


  1. Atualizar valores nulos para "Não Informado". Pois dessa forma será possível fazer a comparação e posteriormente a atualização.
  2. Fazer o tratamento no join:

Coluna 1(País)=Coluna 3(País) AND
Coluna 2(Capital)!=IIF(ISNULL(Coluna 4(Capital)),'Não Informado',Coluna 4(Capital))

          Dessa forma a tabela 1 será atualizada com o valor da tabela 2, mas o seu conteúdo antes da comparação continua como null.

Tenham uma ótima Semana.



sexta-feira, 27 de maio de 2016

Create Database link / Criar link de Banco de Dados - Oracle

Via formulário/ By connect string

CREATE DATABASE LINK nome_do_dblink
CONNECT TO nome_do_usuario_que_ira_se_conectar IDENTIFIED BY senha_do_usuario
USING '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = Host_do_usuario_que_irá_se_conectar)(PORT = Porta_do_host))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = Instância_do_banco_de_dados)
    )
  )';