Oracle PL/SQL:将输入数据从过程传递到函数以插入到表中

8mmmxcuj  于 2023-06-05  发布在  Oracle
关注(0)|答案(1)|浏览(180)

我有一个包,它有一个过程和一个函数。该过程获取雇员的姓名作为输入,函数应将其插入雇员表。

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的值。
我通过一个并发程序获得输入,在那里添加雇员姓名作为参数,并通过代码获得其值,但我无法做到这一点。表中没有这个名字。如何从过程中获取函数名的值,并最终将其插入表中,因为这是我的最终目标。我不能在过程中使用插入,我必须从过程中获取输入并使用不同的函数插入。

deyfvvtc

deyfvvtc1#

insert_emp_name应该是一个过程,而不是函数。因为无论如何都不会返回任何结果。

procedure insert_emp_name(p_emp_name varchar2)  
is
begin
insert into Employee (Emp_Name) values p_emp_name;
end insert_emp_name;

相关问题