Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

e-Renata

PL/SQL Sequences

Recommended Posts

http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Gente, como declaro uma sequence (seq_sol.nextval) numa stored procedure PL/SQL?

 

(Bom ... esse foi o erro que apareceu na compilação do meu programa, que a sequence deve ser declarada e os comandos seguintes - correlatos a ela ou não - são ignorados).

 

A quem puder me ajudar, agradeço MUITO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá,Não entendi o seu contexto mas vou te passar o que eu utilizo por aqui..primeira mente eu crio a sequence e depois a aciono através de trigger como abaixoesta trigger é acionanda sempre que eu insiro algum registro na TAB1CREATE SEQUENCE TAB1SQ INCREMENT BY 1 START WITH 1--> triggercreate or replace trigger TAB1TBEFORE INSERT ON TAB1 FOR EACH ROWDECLAREid NUMBER;BEGINSELECT TAB1SQ.NEXTVAL INTO id FROM dual;:NEW.ID := id;END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

certo, mas a sequence já está criada (outra analista é quem as cria no BD e disponibiliza pra gente) meu problema está sendo sua aceitação pela minha stored procedure.

 

como faço para que ela seja aceita pelo compilador Oracle 8.0 aqui, conseqüentemente pela minha stored procedure PL/SQL? Esta, a utiliza como identificador de uns arquivos que estou populando e para tanto tenho que inserir esse valor dela no campo-chave deles (como primary key).

 

:)

 

Vou seguir sua sugestão e tentar usá-la assim:

 

numsolic NUMBER;

 

SELECT seq_sol.NEXTVAL INTO numsolic FROM dual;

.

.

.

e inserir seu valor normalmente nos campos-chave que eu precisar, através de "numsolic"

 

 

(Estou com a intuição de que isso vai salvar minha vida, hehehe http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif )

 

Obrigadíssima!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passe o Erro que o Oracle lhe passa para podermos analisar melhor. As vezes, não precisa jogar o valor de uma sequence numa bind Variable, e sim utilizar o NEXT_VAL dentro da sua própria instrução DML. Veja se o owner que foi criado a sequence você tem acesso ou se ele é publico. Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Hãhã... assim também funcionou, mas ficou melhor usar a sequence através da variável de ligação por causa da posterior impressão deste valor, quando da confirmação de solicitação informada ao usuário.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.