Comment ajouter à la table emp une colonne
salut !
j'ai volu ajouter à la table emp une colone qui va comporter les salaires annuels si il son > 10000 du chaque emplouer.
Alors j'ai ajouter un colone : SAL_ANN pour la table emp
et j'ai créer une vue :
Code:
1 2 3 4
|
create view salan as
select empno,ename,job,((sal+comm)*12) as sa
from emp; |
puis le curseur qui beug tjs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
1 declare cursor c1_emp is
2 select e.empno,e.ename,e.job,s.empno,s.sa
3 from
4 emp e,salan s
5 where
6 s.empno = e.empno;
7 begin
8 for e1_emp in c1_emp
9 loop
10 if(e1_emp.sa> 10000)
11 then
12 update emp
13 set asl_ann = e1_emp;
14 exit;
15 end if;
16 end loop;
17* end;
SQL> /
for e1_emp in c1_emp
* |
Citation:
ERREUR à la ligne 8 :
ORA-06550: Ligne 8, colonne 1 :
PLS-00402: alias requis dans liste de curseur SELECT pour éviter noms de col. en double
ORA-06550: Ligne 8, colonne 1 :
PL/SQL: Statement ignored
*************************************************
NB : e1_emp c'est l'enregistrement !
MERCI D'AVANCE :king: :king: :king: :king: :king:
:oops::oops::oops::oops::oops::oops::oops::oops:
MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
Citation:
Envoyé par
fatsora
Bonjour,
il y a d'autres erreurs ici
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE OR REPLACE VIEW SALAN
(
EMPNO,
ENAME,
JOB,
SA
)
AS
SELECT empno,
ename,
job,
( (sal + NVL(comm,0) )* 12) AS sa
FROM emp; |
sans le NVL Oracle n'effectue pas la somme des 2 colonnes ou l'une est nulle
2. dans le PLSQL
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
declare cursor c1_emp IS
SELECT e.empno,e.ename,e.job,s.empno SALAN_NO,s.sa
FROM
emp e,salan s
WHERE
s.empno = e.empno;
begin
FOR e1_emp IN c1_emp
loop
IF(e1_emp.sa> 10000)
then
UPDATE emp
SET SAL_ann = e1_emp.SA
where empno =e1_emp.empno;
end IF;
end loop;
end;
/ |
-le exit est superflu car il fait sortir tout de suie apres la 1 value
-e dedoubelment de colone est inutile !!
-et il faut ajouter un where a l'update !
:yaisse2:
:yaisse2::yaisse2:
:king: