oracle存储过程问题!!!!急!!!!急!!!

来源:百度知道 编辑:UC知道 时间:2024/06/20 01:09:11
create or replace procedure
hireemloyee(insert_emp emp%rowtype)
as
begin
insert into emp values(
insert_emp.empno,
'insert_emp.ename',
'insert_emp.job',
insert_emp.mgr,
insert_emp.hiredate,
insert_emp.sal,
insert_emp.comm,
insert_emp.deptno);
end hireemloyee;
定义好了过程赢如下语句执行不了,是不是我弄错了???高手指点下
execute employeepackage.hireemloyee(7369,'smith','clerk',7092,to_date('1980-12-7','YYYY-MM-DD'),800,null,20)
以下是emp表的结构
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM

insert 的 类型有错误,你的输入参数为一个 emp%rowtype 的类型,而你调用的时候(7369,'smith','clerk',7092,to_date('1980-12-7','YYYY-MM-DD'),800,null,20) 用了这么多参数,个数和类型都匹配不上,
应该定义一个emp%rowtype 得变量 比如名字为 vars ,
execute employeepackage.hireemloyee (vars) 这样就对了

参数一个一个传就好了,别想什么偷懒的法儿!貌似高明,实则错误!