想创建一个可跟新的 视图,于是就写了一个出发器 可是 编译的时候 都没有通过 检查了半天 也没发现。自己也是一个新手。只好在网上 求助下大家了 希望大家帮我看看 
create or replace trigger insert_project_info
instead of insert 
on 录入项目信息
for each row
declare
  project_admin  number;
  c_account number ;
begin
  select employee_id
  into project_admin
  from 职工信息
  where 职工信息.employee_name=:new.employee_name;  
  select customer_account 
  into c_account
  from 客户信息
  where 客户信息.customer_id=:New.customer_id;
  if inserting then      
    insert into 项目信息
    values(:New.project_id,:New.project_name,TO_DATE(:New.project_date,'YYYY-MONTH-DD'),:New.project_address,
:New.project_count,:New.project_price,:New.project_payed,project_admin,New.customer_id,:New.project_re,:New.project_type);
    c_accout:=c_accout+(:New.project_payed-:New.project_count*:New.project_price);
    insert into 客户信息
    values(:New.customer_id,:New.customer_name,:New.customer_tel,:New.customer_company,c_accout,
:New.customer_re);     
  end if;
end;

解决方案 »

  1.   

    录入项目信息 视图
    Create view view_project_application as
    Select  t1.project_id,t1.project_name,t1.project_date,t1.project_address,t1.project_count,
    t1.project_price,t1.project_payed,t3.employee_name,t1.project_re,t2.customer_id,t2.customer_name,t2.customer_tel,t2.customer_company,t2.customer_re
    from 项目信息 t1,客户信息 t2,职工信息 t3
    where t1.project_admin=t3.employee_id and t1.customer_id =t2.customer_id;
      

  2.   

    c_accout:=c_accout+(:New.project_payed-:New.project_count*:New.project_price);
    不知道这句话 能不能这么写
      

  3.   

    if inserting then   
      insert into 项目信息
      values(:New.project_id,:New.project_name,TO_DATE(:New.project_date,'YYYY-MONTH-DD'),:New.project_address,
    :New.project_count,:New.project_price,:New.project_payed,project_admin,New.customer_id,:New.project_re,:New.project_type);
      c_accout:=c_accout+(:New.project_payed-:New.project_count*:New.project_price);
      insert into 客户信息
      values(:New.customer_id,:New.customer_name,:New.customer_tel,:New.customer_company,c_accout,
    :New.customer_re);   
      end if;红色的第一个没有‘:’。第二个字段在你建的视图里都没有找到有这个字段。
    若用不对请丢砖。
      

  4.   

    少说了一句,这个Inserting的条件应该不加也可以吧。本来这个触发器就是在insert的时候触发的。