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]

Responder a