Pular para o conteúdo

Fóruns SQL e PL/SQL Função para retornar campo Função para retornar campo

#93372
Anônimo

    Desculpe – não fui muito claro na minha explanação do que eu preciso – seria o seguinte a função abaixo que está funcionando – o que preciso fazer é inserir o resultado dela em um campo no insert que é o próximo código que coloquei de exemplo.

    Code1
    CREATE OR REPLACE FUNCTION cor_vigencia (vigencia_pfj_codigo_in
    IN synchro.cor_pessoa_vigencia.pfj_codigo%TYPE)
    RETURN synchro.cor_pessoa_vigencia.dt_inicio%TYPE
    IS
    v_dt_inicio synchro.cor_pessoa_vigencia.dt_inicio%TYPE;
    BEGIN
    SELECT dt_inicio
    INTO v_dt_inicio
    FROM synchro.cor_pessoa_vigencia
    WHERE pfj_codigo = vigencia_pfj_codigo_in
    and dt_fim is null;

    RETURN v_dt_inicio;
    

    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    /* Retorna o registro. */
    RETURN v_dt_inicio;
    END cor_vigencia;

    Code2

    INSERT INTO synchro.synitf_pessoa
    (pfj_codigo,
    codigo_usual,
    mnemonico,
    dt_inicio,
    dt_fim,
    )
    VALUES
    (pi_pessoa.a1_cgc, --pfj_codigo
    pi_pessoa.a1_cod, --codigo_usual
    pi_pessoa.a1_nome, --mnemonico
    pi_pessoa.a1_pessoa, --ind_fisica_juridica
    v_ClassesRecord.Dt_Inicio, --DT_INICIO
    NULL, --DT_FIM "
    );

      ELSE 
        UPDATE synchro.synitf_pessoa 
           SET pfj_codigo               = pi_pessoa.a1_cgc, 
               codigo_usual             = pi_pessoa.a1_cod, 
               mnemonico                = pi_pessoa.a1_nreduz, 
               ind_fisica_juridica      = pi_pessoa.a1_pessoa, 
               dt_inicio                = trunc(sysdate), 
               dt_fim                   = trunc(sysdate), 
        where  trim(cpf_cgc)          = TRIM(pi_pessoa.a1_cgc); 
    
      END IF; </code>