killerhcf Posted May 11, 2012 at 03:42 PM Report #454642 Posted May 11, 2012 at 03:42 PM boas, tava a fazer o seguinte trigger e tá me a dar erro: Error at line 5: PLS-00049: bad bind variable 'NEW.NOME' create or replace trigger novo_gestor before insert on gestores for each row Begin insert into pessoas(bi,nome,morada,data_nascimento) values (:new.bi,:new.nome, :new.morada, :new.data_nascimento); insert into funcionarios values (:new.bi, :new.data_entrada); end; / tou a meter os atributos pela ordem que meti ao criar as tabelas, eu tenho uma tabela que é pessoas com esses atributos no trigger que depois tem uma especialização que é funcionarios com os atributos ai tb no trigger e depois outra especialização dos funcionarios que é o gestor ou seja qaundo tou a meter dados dum gestor ele mete primeiro na pessoa,depois no funcionario e por fim quando acaba o trigger no gestor, qual pode ser o erro???
renafi Posted May 11, 2012 at 04:50 PM Report #454686 Posted May 11, 2012 at 04:50 PM Acho que te enganaste na insercao. Que colunas tem a tabela gestores? A variável :new contém as colunas da tabela que está associada ao trigger, neste caso, a tabela gestores. existe uma coluna chamada "nome" na tabela gestores? Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist
killerhcf Posted May 11, 2012 at 05:46 PM Author Report #454709 Posted May 11, 2012 at 05:46 PM pois nos gestore só tenho bi create table gestores(bi number(11) not null, foreign key (bi) references pessoas); mas supostamente vai receber os atributos das tabelas acima ou seja do funcionario e das pessoas como é uma especialização delas.
killerhcf Posted May 11, 2012 at 05:56 PM Author Report #454711 Posted May 11, 2012 at 05:56 PM create or replace trigger novo_gestor before insert on gestores for each row Begin insert into pessoas values (:new.bi, nome, morada, data_nascimento); insert into funcionarios values (:new.bi, data_entrada); end; / ficava assim em que o bi seria só o unico new o resto como normal? se bem que agora dava este erro Error at line 4: PL/SQL: ORA-00984: column not allowed here 2. before insert on gestores 3. for each row 4. Begin 5. insert into pessoas values 6. (:new.bi, nome, morada, data_nascimento);
killerhcf Posted May 12, 2012 at 11:28 AM Author Report #454834 Posted May 12, 2012 at 11:28 AM boas ,obrigado renafi e tambem ja descobri a resposta para o segundo erro só faltava declarar as variaveis que não estavam nessa tabela do trigger create or replace trigger novo_gestor before insert on gestores for each row declare nome varchar(50); morada varchar (50); data_nascimento date;data_entrada date; Begin insert into pessoas values (:new.bi, nome, morada, data_nascimento); insert into funcionarios values (:new.bi, data_entrada); end; /
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now