我有一个包,它有一个过程和一个函数。该过程获取雇员的姓名作为输入,函数应将其插入雇员表。
create or replace package body Emp_Name_pkg is
procedure get_emp_name (p_emp_name VARCHAR(20))
is
....
end get_emp_name;
function insert_emp_name is
insert into Employee (Emp_Name) values p_emp_name;
end insert_emp_name;
end Emp_Name_pkg;
This gives me an error -
PL/SQL: SQL Statement ignored
PL/SQL: ORA-00984: column not allowed here
Errors: check compiler log
现在,即使在函数中声明了p_emp_name,在执行程序之后,它也不会在表中显示employee name的值。
我通过一个并发程序获得输入,在那里添加雇员姓名作为参数,并通过代码获得其值,但我无法做到这一点。表中没有这个名字。如何从过程中获取函数名的值,并最终将其插入表中,因为这是我的最终目标。我不能在过程中使用插入,我必须从过程中获取输入并使用不同的函数插入。
1条答案
按热度按时间deyfvvtc1#
insert_emp_name
应该是一个过程,而不是函数。因为无论如何都不会返回任何结果。