Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Marco

Segue um exemplo.
Supondo uma tabela TESTE(com um campo "codigo" do tipo number) e uma
sequence SQ_TESTE:

CREATE OR REPLACE TRIGGER tr_teste_ins
BEFORE INSERT ON teste
FOR EACH ROW
BEGIN
   SELECT sq_teste.NEXTVAL
   INTO :NEW.codigo
   FROM DUAL;
END;
/

[ ]'s

André


Em 03/05/07, FERNANDES Marco A SOFTTEK <
[EMAIL PROTECTED]> escreveu:

>   André, vc poderia dar um exemplo disso pra ficar mais claro ?
>
> 
>
> From: oracle_br@yahoogrupos.com.br [mailto:
> oracle_br@yahoogrupos.com.br ] On Behalf
> Of PUB: Andre Santos
> Sent: quinta-feira, 3 de maio de 2007 11:02
> To: oracle_br@yahoogrupos.com.br 
> Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
> gerado..
>
> Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
> para "insert", obtendo o valor da sequence (dessa forma ficaria bem
> semelhante ao uma coluna do tipo "autonumeração").
>
> [ ]'s
>
> André
>
> Em 02/05/07, FERNANDES Marco A SOFTTEK <
> [EMAIL PROTECTED] mfernandes% 40fornecedores.confab.com.br> > escreveu:
>
> > 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  oracle_br%40yahoogrupos.com.br> [mailto:
> > oracle_br@yahoogrupos.com.br   oracle_br%40yahoogrupos.com.br> ] On
> Behalf
> > Of PUB: Renan Nucci - CSM Soft
> > Sent: quarta-feira, 2 de maio de 2007 17:52
> > To: oracle_br@yahoogrupos.com.br  oracle_br%40yahoogrupos.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  oracle_br%40yahoogrupos.com.br>   > 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 9 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  oracle_br%40yahoogrupos.com.br>  > ora

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Renan Nucci - CSM Soft
hahahaha  Andre,, 
eu quis dizer "tosco" pq pra vcs devem ser tosco de tao facil, mas pra mim tem 
muita importancia,, foi isso que quis dizer nao ia te escurraça, pq vc me 
mostrou o q realmente eu tava procurando.. 

Eh o seguinte para eu ter independencia de banco estou pensando em criar 
procedures nos meus dois bancos (Oracle e SS) pq imagino q a chamada para os 
dois bancos sejam iguais,.. o q muda eh o corpo da procedure.. Portando ja 
criei as procedures no SS e agora chegou a hora de crialas  no oracle.. e ae q 
ta o problema.. 

Estou utilizando o Oracle 10 e utilizando ADO (namespace oracle client no C#).

bom quem puder me adicionar no msn pra me ajudar, sera bem vindo.. 
[EMAIL PROTECTED]



* Renan S. Nucci *
* Desenvolvedor *

  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 4:03 PM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Renan

  Hahaha... Nesse agradecimento do "exemplo tosco", pareceu que você estava me
  escorraçando. =^)

  Para saber como fazer a chamada da procedure, precisamos saber qual a
  linguagem que você utiliza para isso... VB com ADO? PL/SQL ?...

  [ ]

  André

  Em 03/05/07, Renan Nucci - CSM Soft <[EMAIL PROTECTED]> escreveu:
  >
  > Agradeco a todos que responderam em especial ao Andre que mandou esse
  > exemplo tosco de procedure q vai me ajuda a esclarecer muita coisa..
  >
  > Vou tentar seguir as recomendacoes de leitura do Chiappa, q entende
  > bastante do assunto, vi muita coisa sua na net..
  >
  > Agora soh mais uma duvida tosca..
  >
  > Como que eu chamo essa procedure, ,pois nao sei o que passar no segundo
  > parametro...
  >
  > call sp_teste('20',???);
  >
  > 
  > []s
  >
  > 
  > * Renan S. Nucci *
  > * Desenvolvedor *
  > 
  > - Original Message -
  > From: Andre Santos
  > To: oracle_br@yahoogrupos.com.br 
  > Sent: Thursday, May 03, 2007 2:15 PM
  > Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
  > gerado..
  >
  > Renan
  >
  > Mas não é difícil criar um trigger para fazer essa "amarração".
  > Vide o exemplo que acabei de mandar em resposta ao Marco.
  >
  > Há outros BD's que trabalham com o conceito de "sequence" também... DB2
  > (da
  > IBM), Postgre...
  > Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
  > parte do padrão ANSI.
  > Claro que uma coluna "identity" poderia facilitar em alguns casos... mas,
  > pessoalmente, eu prefiro as "sequences".
  >
  > Além do que o mestre Chiappa já mencionou, há coisas que você pode com
  > sequences que não poderiam ser realizadas com identity.
  > Por exemplo, tabelas diferentes seguindo uma mesma seqüência.
  >
  > A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i
  > ou
  > superior):
  >
  > CREATE OR REPLACE PROCEDURE sp_teste
  > (
  > cod IN VARCHAR2,
  > consulta OUT SYS_REFCURSOR
  > )
  > AS
  > BEGIN
  > OPEN consulta FOR
  > SELECT * FROM tabela WHERE codigo = :cod;
  > END sp_teste;
  > /
  >
  > [ ]'s
  >
  > André
  >
  > Em 03/05/07, Renan Nucci - CSM Soft <[EMAIL 
PROTECTED]>
  > escreveu:
  > >
  > > Blz,, agradeço as respostas,,
  > > agora sinceramente, acho o cumulo o banco de dados mais utilizado do
  > mundo
  > > nao ter uma maneira mais facil para esse tipo de problemas
  > >
  > > Um outro ponto que eu nao estou acertando eh em relacao a procedures..
  > >
  > > Pois se tenhu que fazer um select dentro de uma procedure eu preciso
  > > declarar um vetor ou jogar o resultado do select em uma variavel???
  > >
  > > como faço pra declarar uma variavel pra acertar a procedure abaixo?
  > >
  > > create procedure teste (:cod in varchar)
  > > is
  > > begin
  > > select * from tabela where codigo = :cod;
  > > end
  > >
  > > ****
  > > * Renan S. Nucci *
  > > * Desenvolvedor *
  > > * CSM Software *
  > > 
  > > - Original Message -
  > > From: Andre Santos
  > > To: oracle_br@yahoogrupos.com.br 
 rupos.com.br>
  > > Sent: Thursday, May 03, 2007 11:02 AM
  > > Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
  > > gerado..
  > >
  > > Só acrescentando, ao que o Marco já explicou, é possível criar um
  > trigger

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Renan

Hahaha... Nesse agradecimento do "exemplo tosco", pareceu que você estava me
escorraçando.  =^)

Para saber como fazer a chamada da procedure, precisamos saber qual a
linguagem que você utiliza para isso... VB com ADO? PL/SQL ?...

[ ]

André


Em 03/05/07, Renan Nucci - CSM Soft <[EMAIL PROTECTED]> escreveu:
>
>   Agradeco a todos que responderam em especial ao Andre que mandou esse
> exemplo tosco de procedure q vai me ajuda a esclarecer muita coisa..
>
> Vou tentar seguir as recomendacoes de leitura do Chiappa, q entende
> bastante do assunto, vi muita coisa sua na net..
>
> Agora soh mais uma duvida tosca..
>
> Como que eu chamo essa procedure, ,pois nao sei o que passar no segundo
> parametro...
>
> call sp_teste('20',???);
>
> 
> []s
>
> 
> * Renan S. Nucci *
> * Desenvolvedor *
> 
> - Original Message -
> From: Andre Santos
> To: oracle_br@yahoogrupos.com.br 
> Sent: Thursday, May 03, 2007 2:15 PM
> Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
> gerado..
>
> Renan
>
> Mas não é difícil criar um trigger para fazer essa "amarração".
> Vide o exemplo que acabei de mandar em resposta ao Marco.
>
> Há outros BD's que trabalham com o conceito de "sequence" também... DB2
> (da
> IBM), Postgre...
> Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
> parte do padrão ANSI.
> Claro que uma coluna "identity" poderia facilitar em alguns casos... mas,
> pessoalmente, eu prefiro as "sequences".
>
> Além do que o mestre Chiappa já mencionou, há coisas que você pode com
> sequences que não poderiam ser realizadas com identity.
> Por exemplo, tabelas diferentes seguindo uma mesma seqüência.
>
> A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i
> ou
> superior):
>
> CREATE OR REPLACE PROCEDURE sp_teste
> (
> cod IN VARCHAR2,
> consulta OUT SYS_REFCURSOR
> )
> AS
> BEGIN
> OPEN consulta FOR
> SELECT * FROM tabela WHERE codigo = :cod;
> END sp_teste;
> /
>
> [ ]'s
>
> André
>
> Em 03/05/07, Renan Nucci - CSM Soft <[EMAIL 
> PROTECTED]>
> escreveu:
> >
> > Blz,, agradeço as respostas,,
> > agora sinceramente, acho o cumulo o banco de dados mais utilizado do
> mundo
> > nao ter uma maneira mais facil para esse tipo de problemas
> >
> > Um outro ponto que eu nao estou acertando eh em relacao a procedures..
> >
> > Pois se tenhu que fazer um select dentro de uma procedure eu preciso
> > declarar um vetor ou jogar o resultado do select em uma variavel???
> >
> > como faço pra declarar uma variavel pra acertar a procedure abaixo?
> >
> > create procedure teste (:cod in varchar)
> > is
> > begin
> > select * from tabela where codigo = :cod;
> > end
> >
> > 
> > * Renan S. Nucci *
> > * Desenvolvedor *
> > * CSM Software *
> > 
> > - Original Message -
> > From: Andre Santos
> > To: oracle_br@yahoogrupos.com.br 
> >  rupos.com.br>
> > Sent: Thursday, May 03, 2007 11:02 AM
> > Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
> > gerado..
> >
> > Só acrescentando, ao que o Marco já explicou, é possível criar um
> trigger
> > para "insert", obtendo o valor da sequence (dessa forma ficaria bem
> > semelhante ao uma coluna do tipo "autonumeração").
> >
> > [ ]'s
> >
> > André
> >
> > Em 02/05/07, FERNANDES Marco A SOFTTEK <
> > [EMAIL PROTECTED]
> >
> > escreveu:
> >
> > > 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 
> > >  rup

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Rafael Alexandre Schmitt
Olá,

Não sei se é balela, nunca usei nenhum método científico para chegar a essa 
conclusão. O que sei é  que a 
Oracle recomenda o uso de cursores explícitos que , pelo menos em teoria, são 
mais eficientes.

Um cursor implícito é executado como uma instrução segundo o padrão sql ansi.
Segundo esse padrão, para retornar apenas uma linha são feitas duas operações: 
a primeira para retornar o registro
em si e a segunda para verificar se irá retornar mais uma linha ( o que iria 
cair na exceptio too_many_rows ). 
Então, um cursor implícito sempre irá fazer no mínimo dois fetches. Também sei 
que isso foi otimizado a partir da 
versão 2.3 do pl/sql, e o que eu falei acima está na documentação não é uma 
conclusão pessoal.

Acredito que além da questão perfomance o uso de cursores também é recomendado 
pela sua clareza e pela sua reusabilidade, você terá que escrever mais código 
mas o resultado é infinitamente superior.
Um monte de select´s perdidos no meio do código é o que existe de pior, mas 
isto é a minha opinião pessoal.

--
Rafael Alexandre Schmitt
[EMAIL PROTECTED]  ||  www.hbtec.com.br
Blumenau - Santa Catarina


  - Original Message - 
  From: FERNANDES Marco A SOFTTEK 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 3:01 PM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Rafael,
  desculpe mas essa história de cursor explícito é mais rápido é balela num é 
não ? risos
  Alguém pode esclarecer isso.
  Já fiz trocentos testes e nunca vi diferença alguma entre os dois.
  Acho que é mais um mito oracleano !
  Rola alguém dar uma colher de chá pra lista ?

  André, eu tinha pedido exemplo daquela trigger que cria a sequencia.
  Vc mandou ela em outro email ?
  No seu email só vi o exemplo do refcursor.

  valeu,
  Marco.

  

  From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
PUB: Rafael Alexandre Schmitt
  Sent: quinta-feira, 3 de maio de 2007 14:51
  To: oracle_br@yahoogrupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Eu faria :

  Declare
  cursor x is 

  select t.campo1, t.campo2...from table t
  where t.codigo = parâmetro;

  begin

  for c1 in x loop

  -- faça alguma coisa... 

  end loop;

  end;

  Lembrando que não há motivo para selecionar todos os campos se você não irá 
utilizá-los.
  De preferência use sempre cursores explícitos, segundo a documentação isto 
melhora a perfomance.

  --
  Rafael Alexandre Schmitt
  [EMAIL PROTECTED] <mailto:rafael%40hbtec.com.br> || www.hbtec.com.br
  Blumenau - Santa Catarina

  - Original Message - 
  From: FERNANDES Marco A SOFTTEK 
  To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
  Sent: Thursday, May 03, 2007 11:35 AM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Renan,
  concordo com seu argumento sobre a coluna identidade... acredito que seria no 
mínimo útil
  que se tivesse criado isso no oracle como existe em outros bancos. Mas enfim, 
isso não é
  o fim do mundo pois é facilmente contornável !

  Com relação à procedure que retorna resultset eu já discordo em parte... acho 
que a forma
  de trabalhar no oracle é diferente dos outros bancos e acredito que não se 
faz necessário
  o uso desse tipo de procedure no oracle pelo uso de cursores ! os cursores 
são muito
  úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT da sua proc 
!!!
  Se vc precisa por exemplo varrer o resultset pode fazer assim:

  for c_sql in ( select * from tabela where codigo = 'XXX')
  loop
  -- aqui vc coloca seu código
  end loop;

  Concordo se formos pensar que é de interesse da Oracle apresentar um BD que é 
compatível
  com outros bancos e facilidade para migração de banco (de banco XYZ para 
Oracle).

  Bom, se puder mostrar em que pontos de sua aplicação vc faz uso dessas 
procedures a
  gente pode te ajudar a adaptar da melhor forma dentro do oracle.

  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: quinta-feira, 3 de maio de 2007 11:19
  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..

  Blz,, agradeço as respostas,, 
  agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo 
nao ter uma maneira mais facil para esse tipo de problemas

  Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

  Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

  como faço pra declarar uma variavel pra acertar a procedure abaixo?

 

RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico FERNANDES Marco A SOFTTEK
Rafael,
desculpe mas essa história de cursor explícito é mais rápido é balela num é não 
? risos
Alguém pode esclarecer isso.
Já fiz trocentos testes e nunca vi diferença alguma entre os dois.
Acho que é mais um mito oracleano !
Rola alguém dar uma colher de chá pra lista ?
 
André, eu tinha pedido exemplo daquela trigger que cria a sequencia.
Vc mandou ela em outro email ?
No seu email só vi o exemplo do refcursor.
 
valeu,
Marco.



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Rafael Alexandre Schmitt
Sent: quinta-feira, 3 de maio de 2007 14:51
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..



Eu faria :

Declare
cursor x is 

select t.campo1, t.campo2...from table t
where t.codigo = parâmetro;

begin

for c1 in x loop

-- faça alguma coisa... 

end loop;

end;

Lembrando que não há motivo para selecionar todos os campos se você não irá 
utilizá-los.
De preferência use sempre cursores explícitos, segundo a documentação isto 
melhora a perfomance.

--
Rafael Alexandre Schmitt
[EMAIL PROTECTED] <mailto:rafael%40hbtec.com.br>  || www.hbtec.com.br
Blumenau - Santa Catarina

- Original Message - 
From: FERNANDES Marco A SOFTTEK 
To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
Sent: Thursday, May 03, 2007 11:35 AM
Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

Renan,
concordo com seu argumento sobre a coluna identidade... acredito que seria no 
mínimo útil
que se tivesse criado isso no oracle como existe em outros bancos. Mas enfim, 
isso não é
o fim do mundo pois é facilmente contornável !

Com relação à procedure que retorna resultset eu já discordo em parte... acho 
que a forma
de trabalhar no oracle é diferente dos outros bancos e acredito que não se faz 
necessário
o uso desse tipo de procedure no oracle pelo uso de cursores ! os cursores são 
muito
úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT da sua proc 
!!!
Se vc precisa por exemplo varrer o resultset pode fazer assim:

for c_sql in ( select * from tabela where codigo = 'XXX')
loop
-- aqui vc coloca seu código
end loop;

Concordo se formos pensar que é de interesse da Oracle apresentar um BD que é 
compatível
com outros bancos e facilidade para migração de banco (de banco XYZ para 
Oracle).

Bom, se puder mostrar em que pontos de sua aplicação vc faz uso dessas 
procedures a
gente pode te ajudar a adaptar da melhor forma dentro do oracle.

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: quinta-feira, 3 de maio de 2007 11:19
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..

Blz,, agradeço as respostas,, 
agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo nao 
ter uma maneira mais facil para esse tipo de problemas

Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

como faço pra declarar uma variavel pra acertar a procedure abaixo?

create procedure teste (:cod in varchar)
is
begin
select * from tabela where codigo = :cod;
end


* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

- Original Message - 
From: Andre Santos 
To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
<mailto:oracle_br%40yahoogrupos.com.br> 
Sent: Thursday, May 03, 2007 11:02 AM
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para "insert", obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo "autonumeração").

[ ]'s

André

Em 02/05/07, FERNANDES Marco A SOFTTEK <
[EMAIL PROTECTED] <mailto:mfernandes%40fornecedores.confab.com.br>  
<mailto:mfernandes%40fornecedores.confab.com.br> > escreveu:

> 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
&g

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Renan Nucci - CSM Soft
Agradeco a todos que responderam em especial ao Andre que mandou esse exemplo 
tosco de procedure q vai me ajuda a esclarecer muita coisa.. 

Vou tentar seguir as recomendacoes de leitura do Chiappa, q entende bastante do 
assunto, vi muita coisa sua na net.. 

Agora soh mais uma duvida tosca.. 

Como que eu chamo essa procedure, ,pois nao sei o que passar no segundo 
parametro...

call sp_teste('20',???); 


[]s



* Renan S. Nucci *
* Desenvolvedor *

  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 2:15 PM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Renan

  Mas não é difícil criar um trigger para fazer essa "amarração".
  Vide o exemplo que acabei de mandar em resposta ao Marco.

  Há outros BD's que trabalham com o conceito de "sequence" também... DB2 (da
  IBM), Postgre...
  Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
  parte do padrão ANSI.
  Claro que uma coluna "identity" poderia facilitar em alguns casos... mas,
  pessoalmente, eu prefiro as "sequences".

  Além do que o mestre Chiappa já mencionou, há coisas que você pode com
  sequences que não poderiam ser realizadas com identity.
  Por exemplo, tabelas diferentes seguindo uma mesma seqüência.

  A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i ou
  superior):

  CREATE OR REPLACE PROCEDURE sp_teste
  (
  cod IN VARCHAR2,
  consulta OUT SYS_REFCURSOR
  )
  AS
  BEGIN
  OPEN consulta FOR
  SELECT * FROM tabela WHERE codigo = :cod;
  END sp_teste;
  /

  [ ]'s

  André

  Em 03/05/07, Renan Nucci - CSM Soft <[EMAIL PROTECTED]> escreveu:
  >
  > Blz,, agradeço as respostas,,
  > agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo
  > nao ter uma maneira mais facil para esse tipo de problemas
  >
  > Um outro ponto que eu nao estou acertando eh em relacao a procedures..
  >
  > Pois se tenhu que fazer um select dentro de uma procedure eu preciso
  > declarar um vetor ou jogar o resultado do select em uma variavel???
  >
  > como faço pra declarar uma variavel pra acertar a procedure abaixo?
  >
  > create procedure teste (:cod in varchar)
  > is
  > begin
  > select * from tabela where codigo = :cod;
  > end
  >
  > 
  > * Renan S. Nucci *
  > * Desenvolvedor *
  > * CSM Software *
  > 
  > - Original Message -
  > From: Andre Santos
  > To: oracle_br@yahoogrupos.com.br 
  > Sent: Thursday, May 03, 2007 11:02 AM
  > Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
  > gerado..
  >
  > Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
  > para "insert", obtendo o valor da sequence (dessa forma ficaria bem
  > semelhante ao uma coluna do tipo "autonumeração").
  >
  > [ ]'s
  >
  > André
  >
  > Em 02/05/07, FERNANDES Marco A SOFTTEK <
  > [EMAIL PROTECTED]>
  > escreveu:
  >
  > > 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 
 rupos.com.br>[mailto:
  > > oracle_br@yahoogrupos.com.br 
 rupos.com.br>] On Behalf
  > > Of PUB: Renan Nucci - CSM Soft
  > > Sent: quarta-feira, 2 de maio de 2007 17:52
  > > To: oracle_br@yahoogrupos.com.br 
 rupos.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/

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Rafael Alexandre Schmitt
Eu faria :

Declare
  cursor x is 
   
   select t.campo1, t.campo2...from table t
   where t.codigo = parâmetro;

begin

  for c1 in x loop

 -- faça alguma coisa...  

  end loop;

end;
   
Lembrando que não há motivo para selecionar todos os campos se você não irá 
utilizá-los.
De preferência use sempre cursores explícitos, segundo a documentação isto 
melhora a perfomance.

--
Rafael Alexandre Schmitt
[EMAIL PROTECTED]  ||  www.hbtec.com.br
Blumenau - Santa Catarina


  - Original Message - 
  From: FERNANDES Marco A SOFTTEK 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 11:35 AM
  Subject: RE: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Renan,
  concordo com seu argumento sobre a coluna identidade... acredito que seria no 
mínimo útil
  que se tivesse criado isso no oracle como existe em outros bancos. Mas enfim, 
isso não é
  o fim do mundo pois é facilmente contornável !

  Com relação à procedure que retorna resultset eu já discordo em parte... acho 
que a forma
  de trabalhar no oracle é diferente dos outros bancos e acredito que não se 
faz necessário
  o uso desse tipo de procedure no oracle pelo uso de cursores ! os cursores 
são muito
  úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT da sua proc 
!!!
  Se vc precisa por exemplo varrer o resultset pode fazer assim:

  for c_sql in ( select * from tabela where codigo = 'XXX')
  loop
  -- aqui vc coloca seu código
  end loop;

  Concordo se formos pensar que é de interesse da Oracle apresentar um BD que é 
compatível
  com outros bancos e facilidade para migração de banco (de banco XYZ para 
Oracle).

  Bom, se puder mostrar em que pontos de sua aplicação vc faz uso dessas 
procedures a
  gente pode te ajudar a adaptar da melhor forma dentro do oracle.

  Abraço,
  Marco.

  

  From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
PUB: Renan Nucci - CSM Soft
  Sent: quinta-feira, 3 de maio de 2007 11:19
  To: oracle_br@yahoogrupos.com.br
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Blz,, agradeço as respostas,, 
  agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo 
nao ter uma maneira mais facil para esse tipo de problemas

  Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

  Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

  como faço pra declarar uma variavel pra acertar a procedure abaixo?

  create procedure teste (:cod in varchar)
  is
  begin
  select * from tabela where codigo = :cod;
  end

  
  * Renan S. Nucci *
  * Desenvolvedor *
  * CSM Software *
  
  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> 
  Sent: Thursday, May 03, 2007 11:02 AM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..

  Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
  para "insert", obtendo o valor da sequence (dessa forma ficaria bem
  semelhante ao uma coluna do tipo "autonumeração").

  [ ]'s

  André

  Em 02/05/07, FERNANDES Marco A SOFTTEK <
  [EMAIL PROTECTED] <mailto:mfernandes%40fornecedores.confab.com.br> > escreveu:

  > 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: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 17:52
  > 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..
  >
  > 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 

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Renan

Mas não é difícil criar um trigger para fazer essa "amarração".
Vide o exemplo que acabei de mandar em resposta ao Marco.

Há outros BD's que trabalham com o conceito de "sequence" também... DB2 (da
IBM), Postgre...
Inclusive, se não me engano, tanto SEQUENCE, como colunas IDENTITY, fazem
parte do padrão ANSI.
Claro que uma coluna "identity" poderia facilitar em alguns casos... mas,
pessoalmente, eu prefiro as "sequences".

Além do que o mestre Chiappa já mencionou, há coisas que você pode com
sequences que não poderiam ser realizadas com identity.
Por exemplo, tabelas diferentes seguindo uma mesma seqüência.

A procedure que você exemplificou, ficaria +/- assim no Oracle (versão 9i ou
superior):

CREATE OR REPLACE PROCEDURE sp_teste
(
   cod IN VARCHAR2,
   consulta OUT SYS_REFCURSOR
)
AS
BEGIN
   OPEN consulta FOR
   SELECT * FROM tabela WHERE codigo = :cod;
END sp_teste;
/

[ ]'s

André


Em 03/05/07, Renan Nucci - CSM Soft <[EMAIL PROTECTED]> escreveu:
>
>   Blz,, agradeço as respostas,,
> agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo
> nao ter uma maneira mais facil para esse tipo de problemas
>
> Um outro ponto que eu nao estou acertando eh em relacao a procedures..
>
> Pois se tenhu que fazer um select dentro de uma procedure eu preciso
> declarar um vetor ou jogar o resultado do select em uma variavel???
>
> como faço pra declarar uma variavel pra acertar a procedure abaixo?
>
> create procedure teste (:cod in varchar)
> is
> begin
> select * from tabela where codigo = :cod;
> end
>
> 
> * Renan S. Nucci *
> * Desenvolvedor *
> * CSM Software *
> 
> - Original Message -----
> From: Andre Santos
> To: oracle_br@yahoogrupos.com.br 
> Sent: Thursday, May 03, 2007 11:02 AM
> Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor
> gerado..
>
> Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
> para "insert", obtendo o valor da sequence (dessa forma ficaria bem
> semelhante ao uma coluna do tipo "autonumeração").
>
> [ ]'s
>
> André
>
> Em 02/05/07, FERNANDES Marco A SOFTTEK <
> [EMAIL PROTECTED]>
> escreveu:
>
> > 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 
> >  rupos.com.br>[mailto:
> > oracle_br@yahoogrupos.com.br 
> >  rupos.com.br>] On Behalf
> > Of PUB: Renan Nucci - CSM Soft
> > Sent: quarta-feira, 2 de maio de 2007 17:52
> > To: oracle_br@yahoogrupos.com.br 
> >  rupos.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 
> >  rupos.com.br>  > 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

RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico FERNANDES Marco A SOFTTEK
Renan,
concordo com seu argumento sobre a coluna identidade... acredito que seria no 
mínimo útil
que se tivesse criado isso no oracle como existe em outros bancos. Mas enfim, 
isso não é
o fim do mundo pois é facilmente contornável !
 
Com relação à procedure que retorna resultset eu já discordo em parte... acho 
que a forma
de trabalhar no oracle é diferente dos outros bancos e acredito que não se faz 
necessário
o uso desse tipo de procedure no oracle pelo uso de cursores ! os cursores são 
muito
úteis e fáceis de se trabalhar. Tão simples como o próprio SELECT da sua proc 
!!!
Se vc precisa por exemplo varrer o resultset pode fazer assim:
 
for c_sql in ( select * from tabela where codigo = 'XXX')
loop
   -- aqui vc coloca seu código
end loop;
 
Concordo se formos pensar que é de interesse da Oracle apresentar um BD que é 
compatível
com outros bancos e facilidade para migração de banco (de banco XYZ para 
Oracle).
 
Bom, se puder mostrar em que pontos de sua aplicação vc faz uso dessas 
procedures a
gente pode te ajudar a adaptar da melhor forma dentro do oracle.
 
Abraço,
Marco.



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Renan Nucci - CSM Soft
Sent: quinta-feira, 3 de maio de 2007 11:19
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..



Blz,, agradeço as respostas,, 
agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo nao 
ter uma maneira mais facil para esse tipo de problemas

Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

como faço pra declarar uma variavel pra acertar a procedure abaixo?

create procedure teste (:cod in varchar)
is
begin
select * from tabela where codigo = :cod;
end


* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

- Original Message - 
From: Andre Santos 
To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
Sent: Thursday, May 03, 2007 11:02 AM
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para "insert", obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo "autonumeração").

[ ]'s

André

Em 02/05/07, FERNANDES Marco A SOFTTEK <
[EMAIL PROTECTED] <mailto:mfernandes%40fornecedores.confab.com.br> > escreveu:

> 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: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 17:52
> 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..
>
> 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>  
>   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..
>

RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico FERNANDES Marco A SOFTTEK
André, vc poderia dar um exemplo disso pra ficar mais claro ?



From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Andre Santos
Sent: quinta-feira, 3 de maio de 2007 11:02
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..



Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para "insert", obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo "autonumeração").

[ ]'s

André

Em 02/05/07, FERNANDES Marco A SOFTTEK <
[EMAIL PROTECTED] <mailto:mfernandes%40fornecedores.confab.com.br> > escreveu:

> 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: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 17:52
> 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..
>
> 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>  
>   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 9 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>  
>  oracle_br%40yahoogrupos.com.br> [mailto:oracle_br@yahoogrupos.com.br 
> <mailto:oracle_br%40yahoogrupos.com.br> 
>  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>  
>   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..
>
> *************

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Renan Nucci - CSM Soft
Blz,, agradeço as respostas,, 
agora sinceramente, acho o cumulo o banco de dados mais utilizado do mundo nao 
ter uma maneira mais facil para esse tipo de problemas

Um outro ponto que eu nao estou acertando eh em relacao a procedures.. 

Pois se tenhu que fazer um select dentro de uma procedure eu preciso declarar 
um vetor ou jogar o resultado do select em uma variavel???

como faço pra declarar uma variavel pra acertar a procedure abaixo?

create procedure teste (:cod in varchar)
is
begin
select * from tabela where codigo = :cod;
end



* Renan S. Nucci *
* Desenvolvedor *
* CSM Software *

  - Original Message - 
  From: Andre Santos 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, May 03, 2007 11:02 AM
  Subject: Re: [oracle_br] Criacao de sequence e dar select no novo valor 
gerado..


  Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
  para "insert", obtendo o valor da sequence (dessa forma ficaria bem
  semelhante ao uma coluna do tipo "autonumeração").

  [ ]'s

  André

  Em 02/05/07, FERNANDES Marco A SOFTTEK <
  [EMAIL PROTECTED]> escreveu:

  > 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:
  > oracle_br@yahoogrupos.com.br ] 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   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 9 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  oracle_br%40yahoogrupos.com.br> 
[mailto:oracle_br@yahoogrupos.com.br 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   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 sequenc

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-03 Por tôpico Andre Santos
Só acrescentando, ao que o Marco já explicou, é possível criar um trigger
para "insert", obtendo o valor da sequence (dessa forma ficaria bem
semelhante ao uma coluna do tipo "autonumeração").

[ ]'s

André


Em 02/05/07, FERNANDES Marco A SOFTTEK <
[EMAIL PROTECTED]> escreveu:

>   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:
> oracle_br@yahoogrupos.com.br ] 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   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 9 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  oracle_br%40yahoogrupos.com.br> 
> [mailto:oracle_br@yahoogrupos.com.br 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   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   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.
>
> ____
>

RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico FERNANDES Marco A SOFTTEK
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 9 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 e

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico Renan Nucci - CSM Soft
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 
  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 9 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:[EMAIL PROTECTED] On Behalf Of 
PUB: Renan Nucci - CSM Soft
  Sent: quarta-feira, 2 de maio de 2007 16:45
  To: oracle_br@yahoogrupos.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> 
  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@yahoogrupos.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> 
  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> || 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> 
  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 pessoa

RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico FERNANDES Marco A SOFTTEK
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 9 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:[EMAIL PROTECTED] On Behalf Of PUB: 
Renan Nucci - CSM Soft
Sent: quarta-feira, 2 de maio de 2007 16:45
To: oracle_br@yahoogrupos.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>  
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@yahoogrupos.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> 
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> || 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> 
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

Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico Renan Nucci - CSM Soft
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 
  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:[EMAIL PROTECTED] On Behalf Of 
PUB: Rafael Alexandre Schmitt
  Sent: quarta-feira, 2 de maio de 2007 15:54
  To: oracle_br@yahoogrupos.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> || 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> 
  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/> 

  [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]



RE: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico FERNANDES Marco A SOFTTEK
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:[EMAIL PROTECTED] On Behalf Of PUB: 
Rafael Alexandre Schmitt
Sent: quarta-feira, 2 de maio de 2007 15:54
To: oracle_br@yahoogrupos.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>  || 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>  
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/>  

[As partes desta mensagem que não continham texto foram removidas]



 


[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico Rafael Alexandre Schmitt
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]  ||  www.hbtec.com.br
Blumenau - Santa Catarina


  - Original Message - 
  From: Renan Nucci - CSM Soft 
  To: oracle_br@yahoogrupos.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/ 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico Renan Nucci - CSM Soft
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]



[oracle_br] Criacao de sequence e dar select no novo valor gerado..

2007-05-02 Por tôpico Renan Nucci - CSM Soft
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]