2017-05-08 80 views
0

我創建了兩個表中的album和personnage,第三個包含引用buErreturns這個錯誤:它顯示:Warning:編譯錯誤時創建的過程。警告:使用編譯錯誤創建的過程sql3

是什麼問題。如何解決它。?

CREATE OR REPLACE PROCEDURE TT1_AJOUTE_PERSON_DANS_ALBUM(pnump in number , pnuma in number) 
--paramètres à préciser 
IS 
v_pers number; 
v_alb number; 

BEGIN 
select count(a.numa) into v_alb 
from tt1_album a 
where (a.numa=pnuma); 

if(v_alb=0) then 
dbms_output.put_line('album introuvable'); 
end if; 

select count(p.nump) into v_pers 
from tt1_peronnage p 
where (p.nump=pnump); 

if(v_pers=0) then 
dbms_output.put_line('personnage introuvable'); 
end if; 

if(v_pers=1 and v_alb=1) then 
insert into tt1_abl_pers values((select ref(a) from tt1_album a 
where(a.numa=pnuma)); 
(select ref(p) from tt1_personnage p where(p.nump=pnump))); 
end if; 

END ; 
/

當我運行commnd顯示錯誤寄回enter image description here

+0

您是否定義了函數're F()'? –

+0

yes定義爲 – Fat16

+0

運行SQL * Plus中的SHOW ERRORS命令,顯示錯誤。 – mustaccio

回答

0

錯誤是由這段代碼的原因造成的:

insert into tt1_abl_pers values((select ref(a) from tt1_album a where(a.numa=pnuma)); (select ref(p) from tt1_personnage p where(p.nump=pnump)));

我想,你要插入的函數值結果[ref(a)and ref(p)] to table tt1_abl_pers:

INSERT INTO tt1_abl_pers 
(ref) 
SELECT ref(a) FROM tt1_album a WHERE(a.numa=pnuma) 
UNION ALL 
SELECT ref(p) FROM tt1_personnage p WHERE(p.nump=pnump);