Campo com valor default.

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
a664
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 18 Nov 2009 11:59 am
Localização: RS
Jeferson Romanini
Oracle Developer

Olá a todos,

Preciso dos ensinamentos do fórum.

Tenho uma coluna em um cadastro, e desejo que ela venha a receber sempre o próximo valor possível.

Se o código utilizado anteriormente foi o 7, desejo que este NOVO registro seja o 8.

Então quando um novo registro for criado, desejo que um "SELECT nvl(max(cod_imovel),0) + 1 codigo" seja executado e atribua o valor para esta coluna.

De certa forma consegui fazer isto, consegui atribuir o valor para a coluna, alterando a propriedade "SOURCE TYPE" para "PL/SQL Expression or function" e adicionando o meu select, porém quando vou salvar o registro, recebo uma mensagem dizendo que esta coluna esta com valor NULO.

Se alguém souber, agradeço muito.
Desde já obrigado
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Jefferson,

Lendo o seu texto descritivo, você parece estar descrevendo para mim o papel de uma SEQUENCE.

Por que você não cria uma sequence para substituir este SELECT MAX?

Você também poderia criar uma TRIGGER de BEFORE INSERT, que utilizaria a informação armazenada nesta variável (PL/SQL function) para inserir na base de dados.

Acho que se você criar como exemplo uma tabela (com PK) , com uma sequence, e criar uma aplicação DEMO no APEX cuja página seria um RELATORIO+FORMULARIO encima desta tabela. Você poderia então consultar o código gerado pela sua aplicação APEX e reproduzir em seu sistema que está desenvolvendo.

Abraços,

Sergio Coutinho
a664
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 18 Nov 2009 11:59 am
Localização: RS
Jeferson Romanini
Oracle Developer

Obrigado Sergio,

Sim, poderia usar uma sequence junto com uma trigger, mas queria deixar livre para o usuário colocar um código qualquer.

Mas de qualquer forma obrigado.

Abraço
Responder
  • Informação