PL/SQL campo varchar2 convertido em uma flag numérica

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
nor.dbajunior
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 02 Dez 2010 10:32 pm
Localização: cuiaba

Ola tenho uma tabela de origem onde tem vários campos

Selecionar tudo

  numr_individuo
  codigo_individuo number
  desc_individuo varchar2
  outros_nomes_1 varchar2
  outros_nomes_2 varchar2
já na tabela de destino os campos
codigo_pessoa,descricao_pessoa,outros_nomes
outros_nomes é uma flag do tipo char, onde 1 é para o campo não nulo e 2 para campos nulos

como faço um cursor onde lé a tabela de origem, converter os campos outros_nomes para char e inserir na tabela de destino
Avatar do usuário
gpereira
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 61
Registrado em: Sáb, 10 Dez 2011 10:56 am
Gustavo Antonio Pereira
OCA Oracle Database 10g Administrator Certified Associate

Amigo,

Descrição ficou meio confusa. Entendi que o seu problema é uma inserção baseada em um tabela origem correto?

Caso este seja o problema a ser solucionado, creio que não precisaremos da criação de um cursor explicito.

Sua duvida seria transformação em valores "char" de acordo com conteúdo dos campos (nulo / não nulo). Caso algum dos campos tenham dados então 1 caso sejam os dois nulos 2 ?

Podemos resolver situação de varias maneiras. Segue exemplo:

Selecionar tudo

INSERT INTO [TABELA_DESTINO](codigo_pessoa,descricao_pessoa,outros_nomes)
SELECT  codigo_individuo,
	  desc_individuo,

	-- CASO CAMPO 1 SEJA NULO E CAMPO 2 SEJA NULO então RETORNA 2 CASO CONTRARIO RETORNA 1
	CASE WHEN outros_nomes_1 = '' AND outros_nomes_2 = '' THEN 2 ELSE 1 END

FROM [TABELA_ORIGEM]
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes