Sql 而不是虚拟列的触发器值
我已从表中创建视图:Sql 而不是虚拟列的触发器值,sql,oracle,Sql,Oracle,我已从表中创建视图: CREATE OR REPLACE VIEW employee_list AS SELECT firstName || ' ' || lastName AS "employee" FROM employees; END; 我想在这个视图中插入值。我创建了而不是触发器: CREATE OR REPLACE TRIGGER trigger_v_emp_list INSTEAD OF INSERT ON employee_list FOR EACH ROW BE
CREATE OR REPLACE VIEW employee_list AS
SELECT firstName || ' ' || lastName AS "employee"
FROM employees;
END;
我想在这个视图中插入值。我创建了而不是触发器:
CREATE OR REPLACE TRIGGER trigger_v_emp_list
INSTEAD OF INSERT ON employee_list
FOR EACH ROW
BEGIN
dbms_output.put_line(:new.employee);
END;
但是当我试图编译这个触发器时,我得到了一个错误:
Error(3,24): PLS-00049: bad bind variable 'NEW.EMPLOYEE'
是否有可能在触发器中获取该插入值,以便将该值插入employees表?当然,我会将此值拆分为两个独立的值。“employee”
使其区分大小写。
当您编写:new.employee时,它试图查找大写字母。别名也会发生同样的情况。应使其发挥作用:
CREATE OR REPLACE VIEW employee_list AS
SELECT firstName || ' ' || lastName AS employee
FROM employees;
END;
请尝试删除视图定义中的双引号。@GordonLinoff谢谢!:)它被标记为Oracle SQL。