Renan, pequeno detalhe.... no seu select vc não usa mais a sequence ! Use-a apenas no insert. O currentval da sequence não é o que vc procura. Vc precisa especificar o código na busca e não o valor da sequence. Como te disse, a sequence não tem relação com a tabela. É apenas um artifício para controlar um sequencia numérica. Portanto, não use o currentval no select, pois ele não serve para isso. Caso vc queira consultar o último registro inserido utilize a cláusula where usando max(campo_id). valeu, abraço, Marco.
________________________________ From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: Renan Nucci - CSM Soft Sent: quarta-feira, 2 de maio de 2007 17:52 To: oracle_br@yahoogrupos.com.br Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. Criei conforme vossa orientação, mas nao consigo selecionar o que foi inserido.. O que esta errado no que fiz abaixo?? /*cria a sequencia*/ create sequence produtos_codigo increment by 1 minvalue 1 nomaxvalue start with 1 commit /*tenta nserir usando sequence*/ ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' /*altera formato da sessao*/ insert into Produtos values(produtos_codigo.NEXTVAL, 'produto1', 5, 2, '2001-01-01') ; commit; /*seleciona o que foi inserido*/ select * from produtos where codigo = produtos_codigo.CURRVAL; ******************************** ***** Renan S. Nucci ***** ***** Desenvolvedor ***** ***** CSM Software ***** ******************************** ----- Original Message ----- From: FERNANDES Marco A SOFTTEK To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> Sent: Wednesday, May 02, 2007 5:10 PM Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. Renan, a tabela não tem ligação direta com a sequence. A tabela tem uma coluna tipo Number normal. O vínculo estará apenas no insert na tabela da seguinte forma: insert into tabela (coluna_ID, coluna_2, coluna_3) values (nome_sequence.nextval(), valor_2, valor_3); A sequence quando criada vc especifica o valor inicial, incremento, máximo, ciclicidade, etc. Portanto, vc deve iniciar com 1 e máximo de 99999 onde o número de noves depende do tamanho do seu number... se for number(3) o máximo é 999.... o incremento põe 1, ou seja, soma sempre 1 (incremento normalmente usado). Ou seja, na criação da tabela não tem segredo... cria ela normal. Aí nos inserts tem que tratar... não é recomendado reaproveitamento de chave nesse caso pois vc teria que tratar também a sequence. Eu já vi muita gente usar sequence mas tbem já vi muita gente usar o select max + 1. Abraço, Marco. ________________________________ From: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> [mailto:oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> ] On Behalf Of PUB: Renan Nucci - CSM Soft Sent: quarta-feira, 2 de maio de 2007 16:45 To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. O que me impediu de criar a sequence eh o primeiro valor, pois nas minhas tentativas estavao dando erros. lembro de ter lido que para usar uma sequence o campo deve ter o valor gerado pela sequence.. :/ eh por isso q pedi um exemplo que me mostrasse a "traducao" de uma tabela do ss para o oracle.. ******************************** ***** Renan S. Nucci ***** ***** Desenvolvedor ***** ***** CSM Software ***** ******************************** ----- Original Message ----- From: FERNANDES Marco A SOFTTEK To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> Sent: Wednesday, May 02, 2007 4:04 PM Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. Para se encriptar uma procedure é necessário o uso da ferramenta WRAP existente no oracle... cada versão de banco tem sua própria ferramenta wrap. Dá uma olhada no Help desse cara pra pegar os detalhes. Abraço, Marco. ________________________________ From: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> [mailto:oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> ] On Behalf Of PUB: Rafael Alexandre Schmitt Sent: quarta-feira, 2 de maio de 2007 15:54 To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. Olá, Bom, para criar uma sequence você usa o create sequence , existem vários exemplos disponíveis na net. Com a sequence criada você pode usar o nextval para retornar o próximo valor se é isso que você deseja. Quanto a encriptar o corpo da procedure eu não sei como isso pode ser feito. -- Rafael Alexandre Schmitt [EMAIL PROTECTED] <mailto:rafael%40hbtec.com.br> <mailto:rafael%40hbtec.com.br> <mailto:rafael%40hbtec.com.br> || www.hbtec.com.br Blumenau - Santa Catarina ----- Original Message ----- From: Renan Nucci - CSM Soft To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> Sent: Wednesday, May 02, 2007 3:31 PM Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. Esqueci de dizer tb que preciso de criptografar o texto dessa procedure, para nao se conseguir ver o corpo da procedure.... por isso q na procedure de exemplo que mandei, existe o with encryption... obrigado ******************************** ***** Renan S. Nucci ***** ***** Desenvolvedor ***** ***** CSM Software ***** ******************************** ----- Original Message ----- From: Renan Nucci - CSM Soft To: oracle_br Sent: Wednesday, May 02, 2007 2:23 PM Subject: [oracle_br] Criacao de sequence e dar select no novo valor gerado.. Boa tarde pessoal, Estou precisando de criar no oracle algumas tabelas que tenho no sql server, soh que o funionamento das mesmas devem ser identico. no SS tenho essa tabela por exemplo, Create table Produtos( codigo int primary key IDENTITY (1, 1) not null , descricao varchar(100), valor Decimal(18,2), qtde int, datacad datetime ) e tenho uma procedure assim: create procedure Insert_Cad_Produtos @descricao varchar(100), @Valor decimal(18,2), @Qtde int, @Datacad datetime with encryption AS Begin insert into Produtos (descricao, Valor, Qtde, dataCad)values(@descricao, @Valor, @Qtde, @datacad) select * from Produtos where Codigo = @@Identity end; Sempre que for inserir eu chamo essa procedure, que apos a insercao da um select no item inserido... Como que eu crio uma tabela no oracle com a funcionalidade do identity do SS???? e como ficaria essa procedure??? Pelo q ja li, creio q vou ter de criar uma sequence, mas nao sei como usar isso, pois nao manjo de oracle, estou vendo agora.. Alguem poderia fazer esse grande favor de mandar o script da tabela e da proceure para o oracle?? obrigado ******************************** ***** Renan S. Nucci ***** ***** Desenvolvedor ***** ***** CSM Software ***** ******************************** [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] ---------------------------------------------------------- Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 02/05/2007 / Versão: 5.1.00/5022 Proteja o seu e-mail Terra: http://mail.terra.com.br/ <http://mail.terra.com.br/> <http://mail.terra.com.br/ <http://mail.terra.com.br/> > <http://mail.terra.com.br/ <http://mail.terra.com.br/> <http://mail.terra.com.br/ <http://mail.terra.com.br/> > > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]