Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #94165
    RGaspar
    Participante

      Bom dia

      Tenho a seguinte instrução que funcionará numa trigger de inserção de títulos, conforme segue abaixo
      INSERT INTO
      TABELA01
      (CD_PESSOA_FISICA, IE_TIPO_INCLUSAO, DT_ATUALIZACAO, DT_EMISSAO, DT_VENCIMENTO,
      DT_PAGAMENTO_PREVISTO, VL_TITULO, VL_SALDO_TITULO, VL_SALDO_JUROS, VL_SALDO_MULTA,
      CD_MOEDA, CD_ESTABELECIMENTO, TX_DESC_ANTECIPACAO, TX_JUROS, TX_MULTA, NM_USUARIO,
      CD_TIPO_TAXA_JURO, CD_TIPO_TAXA_MULTA, CD_TIPO_PORTADOR, CD_PORTADOR, IE_SITUACAO,
      IE_TIPO_EMISSAO_TITULO, IE_ORIGEM_TITULO, IE_TIPO_TITULO, NR_SEQ_TRANS_FIN_CONTAB,
      NR_SEQ_TRANS_FIN_BAIXA, nr_titulo)
      VALUES (‘98260’, ‘1’, ’24/05/2010′, ’24/05/2010′, ’24/05/2010′, ’24/05/2010′, ‘115’, ‘115’,
      ‘0’, ‘0’, ‘1’, ‘2’, ‘0’, ‘0’, ‘0’, ‘rafaels’, ‘1’, ‘1’, ‘0’, ‘2’, ‘1’, ‘1’, ‘9’, ‘1’, ‘2106’ , ‘1431’,
      (select titulo_seq. from dual));

      O Erro que está ocorrendo é no “(select titulo_seq. from dual)” aonde eu tento pegar o número da sequence. Ocorre que quando rodo ele, ocorre o seguinte erro:

      Erro ao iniciar na linha 1 no comando:
      INSERT INTO
      TASY.TITULO_RECEBER
      (CD_PESSOA_FISICA, IE_TIPO_INCLUSAO, DT_ATUALIZACAO, DT_EMISSAO, DT_VENCIMENTO,
      DT_PAGAMENTO_PREVISTO, VL_TITULO, VL_SALDO_TITULO, VL_SALDO_JUROS, VL_SALDO_MULTA,
      CD_MOEDA, CD_ESTABELECIMENTO, TX_DESC_ANTECIPACAO, TX_JUROS, TX_MULTA, NM_USUARIO,
      CD_TIPO_TAXA_JURO, CD_TIPO_TAXA_MULTA, CD_TIPO_PORTADOR, CD_PORTADOR, IE_SITUACAO,
      IE_TIPO_EMISSAO_TITULO, IE_ORIGEM_TITULO, IE_TIPO_TITULO, NR_SEQ_TRANS_FIN_CONTAB,
      NR_SEQ_TRANS_FIN_BAIXA, nr_titulo)
      VALUES (‘98260’, ‘1’, ’24/05/2010′, ’24/05/2010′, ’24/05/2010′, ’24/05/2010′, ‘115’, ‘115’,
      ‘0’, ‘0’, ‘1’, ‘2’, ‘0’, ‘0’, ‘0’, ‘rafaels’, ‘1’, ‘1’, ‘0’, ‘2’, ‘1’, ‘1’, ‘9’, ‘1’, ‘2106’ , ‘1431’,
      (select titulo_seq.nextval from dual))
      Erro na Linha de Comando:11 Coluna:19
      Relatório de Erro:
      Erro de SQL: ORA-02287: sequence number not allowed here
      02287. 00000 – “sequence number not allowed here”
      *Cause: The specified sequence number (CURRVAL or NEXTVAL) is inappropriate
      here in the statement.
      *Action: Remove the sequence number.

      Já tentei utilizar “Select max(nr_titulo) + 1 from tabela01” o problema é que com esse comando eu deixo desorganizado a sequence, e teria q reordenar a cada inserção a sequence novamente.

      Obrigado por qualquer ajuda,

      Atenciosamente

      Rafael Gustavo Gaspar da Silva

      #94169
      Anônimo

        tente substituir :
        (select titulo_seq.nextval from dual)

        por: titulo_seq.nextval

        veja:
        SQL> create sequence test ;

        Sequence created.

        Elapsed: 00:00:00.01
        SQL> create table tab2( campo number, nome varchar2(10)) ;

        Table created.

        Elapsed: 00:00:00.02
        SQL> insert into tab2 values( test.nextval, ‘ABC’) ;

        1 row created.

        Elapsed: 00:00:00.01
        SQL>

        #94172
        RGaspar
        Participante

          vdrago
          Obrigado

          Funcionou corretamente.

          Abração

          Rafael

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.