Jump to content

Recommended Posts

Posted

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???

Posted

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

Posted

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.

Posted

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);

Posted

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;

/

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.