Insert com query e campos normais

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
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Preciso fazer um insert no banco, mas parte dos campos vem de um select, o ID de uma sequence e duas flags que não vem do select. Algo assim, sei que está errado, mas como fazer o certo?

Coloco os campos dentro do select também? E a sequence? Cabe dentro do select, logo assim está errado

Selecionar tudo

INSERT INTO DADOS_CADASTRAIS
(   ID_DADOS_CADASTRAIS,
    DT_EXTRACAO,
    NM_NOME,
    NR_CHAPA,
    NR_CENTRO_CUSTO,
    DS_CARGO,
    DS_UNIDADE_OPERACIONAL,
    DS_AREA_DEPARTAMENTO,
    --NM_GESTOR,
    FL_SITUACAO,
	FL_STATUS)
    VALUES
    (
     DADOS_CADASTRAIS_SEQ.NEXTVAL,
     SELECT 
        SAL.ATSV_NOME AS NOME, 
        SAL.PKND_NUMERO_PESSOAL AS CHAPA,
        SAL.ATSV_CENTROCUSTO AS CENTROCUSTO,
        SAL.ATSV_CARGO AS CARGO,
        SAL.ATSV_UO AS DECRICAOUO,
        SAL.ATSV_AREA AS AREADEPARTAMENTO        
        FROM TAKB423T_PR_HISTORICO_ALT_SAL SAL,
        
        'E',
        '1'
        
    )
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Assim estaria correto?

Selecionar tudo

INSERT INTO DADOS_CADASTRAIS
( ID_DADOS_CADASTRAIS,
DT_EXTRACAO,
NM_NOME,
NR_CHAPA,
NR_CENTRO_CUSTO,
DS_CARGO,
DS_UNIDADE_OPERACIONAL,
DS_AREA_DEPARTAMENTO,
--NM_GESTOR,
FL_SITUACAO,
FL_STATUS)

SELECT
DADOS_CADASTRAIS_SEQ.NEXTVAL,
SAL.ATSV_NOME AS NOME,
SAL.PKND_NUMERO_PESSOAL AS CHAPA,
SAL.ATSV_CENTROCUSTO AS CENTROCUSTO,
SAL.ATSV_CARGO AS CARGO,
SAL.ATSV_UO AS DECRICAOUO,
SAL.ATSV_AREA AS AREADEPARTAMENTO,
'E',
'1'
FROM TAKB423T_PR_HISTORICO_ALT_SAL SAL
)
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Isso.
O VALUES é quando você quer inserir apenas 1 linha, passando cada valor.
Quando é baseado num SELECT, não tem VALUES.
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Eu não coloquei o Values, apenas coloquei a sequence e demais campos dentro do select e perguntei se era isso mesmo, principalmente a sequence, acho que a sequence dispara, certo?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Sim.
Responder
  • Informação
  • Quem está online

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