UPDATE DADOS
OLA PESSOAL,
PRECISO DE UMA AJUDA DE VOCÊS, NO BANCO DE DADOS DO TRABALHO EXISTE UM CAMPO QUE GERA NÚMEROS SEQUENCIAS ASSIM PRECISO QUE SEMPRE QUE GERAR UM NUMERO SEQUENCIAL PRECISO SETAR A ULTIMA SEQUENCIA COMO ATIVA (ISSO O SISTEMA JÁ FAZ) SÓ QUE ELE NÃO ESTA DESATIVANDO A PENÚLTIMA COMO SÃO MUITAS SEQUÊNCIAS PRECISO FAZER UM SCRIPT PRA FACILITAR. TIPO PEGAR O ULTIMO - 1 OU ALGO ASSIM.
ATT
KAIO
PRECISO DE UMA AJUDA DE VOCÊS, NO BANCO DE DADOS DO TRABALHO EXISTE UM CAMPO QUE GERA NÚMEROS SEQUENCIAS ASSIM PRECISO QUE SEMPRE QUE GERAR UM NUMERO SEQUENCIAL PRECISO SETAR A ULTIMA SEQUENCIA COMO ATIVA (ISSO O SISTEMA JÁ FAZ) SÓ QUE ELE NÃO ESTA DESATIVANDO A PENÚLTIMA COMO SÃO MUITAS SEQUÊNCIAS PRECISO FAZER UM SCRIPT PRA FACILITAR. TIPO PEGAR O ULTIMO - 1 OU ALGO ASSIM.
ATT
KAIO
Kaio
Curtidas 0
Respostas
Carlos Tangerino
28/05/2013
Olá Kaio, respondí sua pergunta no tópico Inserção de Dados. Você pode utilizar o select max(sequencia)-1 from tabela, pegando o penúltimo, seguindo uma linha de raciocínio do outro tópico.
Abraço,
Abraço,
GOSTEI 0
Kaio
28/05/2013
OBRIGADO CARLAO, VOU FAZER ESSE PROCEDIMENTO.
GRATO PELA ATENÇÃO.
GRATO PELA ATENÇÃO.
GOSTEI 0
Kaio
28/05/2013
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',(SELECT MAX(ASD_ST_SERIEDOC) FROM MGGLO.GLO_AGENTESERIEDOC),'A','serie correção 2013');
SERIEDOC),'A','serie correção 2013');
CARLAO ESSE SELECT (SELECT MAX(ASD_ST_SERIEDOC) FROM MGGLO.GLO_AGENTESERIEDOC) QUE PRECISO QUE SEJA INSERIDO SEMPRE UM NUMERO MAIOR QUE O ULTIMO QUE JA ESTEJA NA TABELA.
AGRADEÇO
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',(SELECT MAX(ASD_ST_SERIEDOC) FROM MGGLO.GLO_AGENTESERIEDOC),'A','serie correção 2013');
SERIEDOC),'A','serie correção 2013');
CARLAO ESSE SELECT (SELECT MAX(ASD_ST_SERIEDOC) FROM MGGLO.GLO_AGENTESERIEDOC) QUE PRECISO QUE SEJA INSERIDO SEMPRE UM NUMERO MAIOR QUE O ULTIMO QUE JA ESTEJA NA TABELA.
AGRADEÇO
GOSTEI 0
Carlos Tangerino
28/05/2013
Deixe dessa maneira, onde você já citou, só faltou o +1:
SELECT MAX(ASD_ST_SERIEDOC)+1 FROM MGGLO.GLO_AGENTESERIEDOC
Ou seja:
Ele pegará o último e somará 1.
Se der algum erro, poste para eu ver.
Abraço,
SELECT MAX(ASD_ST_SERIEDOC)+1 FROM MGGLO.GLO_AGENTESERIEDOC
Ou seja:
Ele pegará o último e somará 1.
Se der algum erro, poste para eu ver.
Abraço,
GOSTEI 0
Kaio
28/05/2013
BOM DIA CARLAO,
FIZ COMO VOCE ME ENSINOU MAS O ORACLE RETORNOU UM ERRO DE EXPRESSÃO NÃO ENCONTRADA ORA00936 APONTANDO PARA O SELECT
O CODIGO FICOU ASSIM:
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',SELECT MAX(ASD_ST_SERIEDOC)+ 1 FROM MGGLO.GLO_AGENTESERIEDOC,'A','serie correção 2013');
ABRAÇO.
FIZ COMO VOCE ME ENSINOU MAS O ORACLE RETORNOU UM ERRO DE EXPRESSÃO NÃO ENCONTRADA ORA00936 APONTANDO PARA O SELECT
O CODIGO FICOU ASSIM:
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',SELECT MAX(ASD_ST_SERIEDOC)+ 1 FROM MGGLO.GLO_AGENTESERIEDOC,'A','serie correção 2013');
ABRAÇO.
GOSTEI 0
Carlos Tangerino
28/05/2013
Bom Dia Kaio,
O select deve ficar entre parenteses:
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',(SELECT MAX(ASD_ST_SERIEDOC)+ 1 FROM MGGLO.GLO_AGENTESERIEDOC),'A','serie correção 2013');
Abraço,
O select deve ficar entre parenteses:
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',(SELECT MAX(ASD_ST_SERIEDOC)+ 1 FROM MGGLO.GLO_AGENTESERIEDOC),'A','serie correção 2013');
Abraço,
GOSTEI 0
Kaio
28/05/2013
CARLAO FIZ COMO VOCE ME FALOU
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',(SELECT MAX (7)+ 1 FROM MGGLO.GLO_AGENTESERIEDOC),'A','serie correção 2013');
SE PASSAR COMO A VARIÁVEL COMO PARAMETRO ESTA RETORNANDO UM ERRO DE NUMERO INVALIDO MAS PASSANDO O NUMERO COMO ESTA NO CODIGO ACIMA FUNCIONA.
A VARIÁVEL ASD_ST_SERIEDOC ESTA DECLARADA COMO VARCHAR2.
INSERT INTO MGGLO.GLO_AGENTESERIEDOC
(AGN_TAB_IN_CODIGO,AGN_PAD_IN_CODIGO,AGN_IN_CODIGO,AGN_TAU_ST_CODIGO,TPD_ST_CODIGO,ASD_ST_SERIEDOC,ASD_CH_STATUS,ASD_ST_DESCRICAO)
VALUES
(53, 1,440500,'N','CH',(SELECT MAX (7)+ 1 FROM MGGLO.GLO_AGENTESERIEDOC),'A','serie correção 2013');
SE PASSAR COMO A VARIÁVEL COMO PARAMETRO ESTA RETORNANDO UM ERRO DE NUMERO INVALIDO MAS PASSANDO O NUMERO COMO ESTA NO CODIGO ACIMA FUNCIONA.
A VARIÁVEL ASD_ST_SERIEDOC ESTA DECLARADA COMO VARCHAR2.
GOSTEI 0
Carlos Tangerino
28/05/2013
Se na coluna ASD_ST_SERIEDOC tiver só números não era pra dar o erro, mas se tiver algum registro com essa coluna sem ser número vai dar pau mesmo, já que o MAX vai pegar aquele que não é numérico, por isso não vai rolar o +1.
Se você fizer SELECT MAX(ASD_ST_SERIEDOC) FROM MGGLO.GLO_AGENTESERIEDOC, o que acontece? Vem number ou varchar?
Se você fizer SELECT MAX(ASD_ST_SERIEDOC) FROM MGGLO.GLO_AGENTESERIEDOC, o que acontece? Vem number ou varchar?
GOSTEI 0
Kaio
28/05/2013
CARLAO VOCE MATOU A CHARADA TEM ALGUNS CAMPOS QUE ESTAO COM CARACTER DIFERENTE DE NUMEROS.
AGORA TENHO QUE VER OUTRA FORMA DE INSERIR JA QUE NAO POSSO ALTERAR ESSES CAMPOS PARA NUMEROS.
ABRAÇO.
AGORA TENHO QUE VER OUTRA FORMA DE INSERIR JA QUE NAO POSSO ALTERAR ESSES CAMPOS PARA NUMEROS.
ABRAÇO.
GOSTEI 0
Kaio
28/05/2013
CARLAO, SERA QUE TEM COMO FAZER UM RESTRIÇÃO NO COMANDO MAX PARA ELE FAZER A COMPARAÇÃO SOMENTE ENTRE NUMEROS PEGAR O MAOIR E ADD + 1?
ABRAÇO
ABRAÇO
GOSTEI 0