2017-05-08 10 views
0

2つのテーブルのアルバムと人物が作成されました.3番目には参照が含まれています。このエラーは次のようになります。IT SHOWS:警告:コンパイルエラーで作成されたプロシージャ。警告:コンパイルエラーで作成されたプロシージャ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 ; 
/

私はそれがエラーは、コードのこの部分によって引き起こされるenter image description here

+0

あなたは 're f() '? –

+0

はいいいえ。 – Fat16

+0

SQL * Plusで 'SHOW ERRORS'コマンドを実行すると、エラーが表示されます。 – mustaccio

答えて

0

を返すcommndショーのエラーを実行します。

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)));

私はあなたが関数の値を挿入しようとしていると仮定テーブルtt1_abl_persへの結果[ref(a)とref(p)]:

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); 
関連する問題