TRIGGER OU DEFAULT

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
VINAO
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Sáb, 16 Jan 2010 9:05 pm
Localização: PR

GALERA MEU PROBLEMA É O SEGUINTE... CRIEI UM TRIGGER PARA INSERIR O CODIGO DE UMA DETERMINADA TABELA POR EXEMPLO PESSOAS ONDE A CHAVE É COD_PESSOA...

FIQUEI SABENDO QUE AO INVEZ DE FAZER UMA TRIGGER PARA ESSA TABELA, QUANDO EU EDITO A TABELA NA COLUNA DEFAULT EU POSSO COLOCAR UM CODIGO QUE FUNCIONA COMO SE FOSSE UMA TRIGGER NA FRENTE DO CAMPO COD_PESSOA POR EXEMPLO ALGO ENTRE ASPAS USANDO NEXTVAL ALGO ASSIM....

alguém PODERIA ME AJUDAR NISSO... SE alguém já USOU ISSO E PUDESSE ME ESCLARECER FICO GRATO! OBRIGADO
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

alter table PESSOAS modify COD_PESSOA default seq_pessoas.nextval;
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

Oi VINAO,

Não sei quem te falou que dá pra usar uma sequence como default, ou uma função que chame a sequence, mas até onde eu sei, pelo menos até o 10g isso não é possível...

Caso queira inserir o número automaticamente, você não tem como escapar da trigger...
VINAO
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Sáb, 16 Jan 2010 9:05 pm
Localização: PR

executei exatamente como esta aqui no sql window do pl

alter table PESSOAS modify COD_PESSOA default seq_pessoas.nextval;

mas também não deu o seguinte erro a parte da sequencia coluna invalida aqui

obrigado
JOPA
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 30 Out 2009 9:52 am
Localização: Salvador - BA
Contato:
Atenciosamente,

João Paulo A. C. do Bomfim

"Deu certo? Deixa! Funcionou? Não mexa!"

Bom,

Não entendi bem mas, não existe um tipo de variável(até onde eu sei)
tipo AUTO-INCREMENTO no oracle. O que você pode fazer é usar
SEQUENCE para popular essa coluna que representa a sua chave
primária.

Como não é algo novo em sua tabela a coluna CÓDIGO DA PESSOA vocë
pode dar um select max em COD_PESSOA e criar uma SEQUENCE com
Start With baseado nesse resultado. Depois Terá que mapear na sua
aplicação(caso exista) os momentos de INSERT e referenciar no
COD_PESSOA a SUA_SEQUENCE.nextval. Caso venha dar insert na mão,
tomar cuidado pra não deixar de usar essa SEQUENCE. No mais, você
pode criar uma trigger referenciando ela.

Tem coisas que não tem pra onde correr.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes