- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 9 meses atrás por
RGaspar.
-
AutorPosts
-
24 de maio de 2010 às 6:27 pm #94165
RGaspar
ParticipanteBom 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
24 de maio de 2010 às 6:40 pm #94169Anô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>24 de maio de 2010 às 7:17 pm #94172RGaspar
Participantevdrago
ObrigadoFuncionou corretamente.
Abração
Rafael
-
AutorPosts
- Você deve fazer login para responder a este tópico.