2017-05-06 54 views
0

我正在尝试创建一个向表添加新行的过程,但它给出了相同的错误。程序:ORA-24344:成功编译错误

这是我的表:

CREATE TABLE Facultate(
ID int not null, 
Den_fac varchar(50), 
Cod_fac varchar(10), 
primary key(ID)); 

这是我在表中插入:

insert all 
into Facultate(ID,Den_fac,Cod_fac) values(1,'Facultatea de Biologie','B') 
into Facultate(ID,Den_fac,Cod_fac) values(2,'Facultatea de Fizică','F') 
into Facultate(ID,Den_fac,Cod_fac) values(3,'Facultatea de Literaturi Străine','LS') 
into Facultate(ID,Den_fac,Cod_fac) values(4,'Facultatea de Psihologie','P') 
into Facultate(ID,Den_fac,Cod_fac) values(5,'Facultatea de Informatică','I') 
select 1 from dual; 

而这个过程:

CREATE OR REPLACE PROCEDURE addfacultate(f_id facultate.id%type, 
f_den_fac facultate.den_fac%type, 
f_den_fac facultate.cod_fac%type) 
IS 
BEGIN 
    INSERT INTO facultate(id,den_fac,cod_fac) 
    VALUES(f_id,f_den_fac,f_cod_fac); 
END; 

我能做些什么,使错误消失了?

+0

你有f_den_fac定义两次作为参数名称。 – OldProgrammer

回答

0

正如@OldProgrammer所说,f_den_fac被宣告两次。我相信这是一个错字,你需要f_cod_fac

CREATE OR REPLACE PROCEDURE addfacultate(f_id facultate.id%type, 
f_den_fac facultate.den_fac%type, 
f_cod_fac facultate.cod_fac%type) 
IS 
BEGIN 
    INSERT INTO facultate(id,den_fac,cod_fac) 
    VALUES(f_id,f_den_fac,f_cod_fac); 
END;