Вы находитесь на странице: 1из 5

set serveroutput on --active l'affichage depuis le serveur vers SQL*plus

declare
nbr number(5);
begin
select count(*) into nbr from jobs;
dbms_output.put_line('le nombre de lignes est : ' || nbr);
end;
/
***********************************************
declare
v_min number(6);
v_max number(6);
begin
select max(MIN_SALARY),max(MAX_SALARY) into v_min,v_max from jobs;
dbms_output.put_line(' min : ' || to_char(v_min));
dbms_output.put_line(' max : ' || to_char(v_max));
end;
/
*******************************
declare
v_min number(6);
v_max number(6);
begin
select max(MIN_SALARY),max(MAX_SALARY) into v_min,v_max from jobs where job_id=&
var;
dbms_output.put_line(' min : ' || to_char(v_min));
dbms_output.put_line(' max : ' || to_char(v_max));
end;
/
*************************************
declare
v_min number(6);
v_max number(6);
v_title varchar2(20);
begin
select MIN_SALARY,MAX_SALARY,job_title into v_min,v_max,v_title from jobs where
job_id=&var;
dbms_output.put_line(' titre : ' || to_char(v_title));
dbms_output.put_line(' max : ' || to_char(v_max));
dbms_output.put_line(' max : ' || to_char(v_max));
end;
/
***********************************
declare
titre varchar(60);
begin
select JOB_TITLE into titre from jobs where job_id=&job_id;
DBMS_OUTPUT.PUT_LINE (titre);
end;
/
**********************************

***********************curseur implicite*****************
insert into jobs values ('TEST','TEST title',222,2222)
/
variable rows_deleted varchar2(20) -- declaration au niveau de SQL*Plus
DECLARE -- bloc PLSQL
v_job_id jobs.job_id%TYPE := 'TEST';
BEGIN
delete FROM jobs
WHERE job_id = v_job_id;
:rows_deleted := (SQL%ROWCOUNT ||
' row deleted.');
END; - fin du bloc PLSQL
/
PRINT rows_deleted -- affichage de la valeur de la variable SQL*Plus
*************************************
declare
V_greatest varchar(20);
begin
SELECT GREATEST ('HARRY', 'HARRIOT', 'HAROLD')
"Greatest" into V_greatest FROM DUAL;
dbms_output.put_line('le plus grand est : ' || V_greatest );
end;
/
**************************Etiquettes (Labels)**************
begin
<<outer>>
DECLARE
v_sal NUMBER(7,2) := 60000;
v_comm NUMBER(7,2) := v_sal * 0.20;
v_message VARCHAR2(255) := ' eligible for commission';
BEGIN

dbms_output.put_line('comm declaré au niveau de outer :' ||v_comm);


DECLARE
v_sal NUMBER(7,2) := 50000;
v_comm NUMBER(7,2) := 0;
v_total_comp NUMBER(7,2) := v_sal + v_comm;
BEGIN
dbms_output.put_line('comm declaré au niveau de bloc englobé par outer :' ||v_comm);
v_message := 'CLERK not'||v_message;
outer.v_comm := v_sal * 0.30;
dbms_output.put_line('outer.comm appllé depuis le bloc englobé par outer :' ||outer.
v_comm);
END;
v_message := 'SALESMAN'||v_message;
dbms_output.put_line('comm appllé a la fin de bloc outer :' ||v_comm);
END;
end;
**********************ROWTYPE*****variable structuré *****************
declare
vjob jobs%rowtype;
begin
select * into vjob from jobs where job_id='ST_MAN';
dbms_output.put_line(vjob.job_title);
end;
/
******************************variable structuré et instruction du DML
****************ajout
declare
vjob jobs%rowtype;
begin
vjob.job_id:='TEST_TEST';
vjob.job_title:='TEST_TITRE';
vjob.min_salary:=333;
vjob.max_salary:=3333;
insert into jobs values vjob;
end;
/

**************modification
declare
vjob jobs%rowtype;
begin
--initialiser la variable vjob
select * into vjob from jobs where job_id='TEST';
--mettre à jour les données
vjob.job_title:='N_TEST';
-- mettre à jour des informations dans la base
update jobs set row=vjob where job_id='TEST';

end;
/

********************structure de controle*****************

begin
FOR i IN 1..30 LOOP
dbms_output.put_line(i);
END LOOP;
end;
/

****************************************
declare
nb number :=&nombre;
begin
FOR i IN 1..nb LOOP
dbms_output.put_line(i);
END LOOP;
end;
/

*****************************************

declare
nb number :=&nombre;
begin
if nb > 10 then
dbms_output.put_line('le nombre est : ' || to_char(nb) || ' est supérieur à 10');
end if;
FOR i IN 1..nb LOOP
dbms_output.put_line(i);
END LOOP;
end;
/
***********************************************
DECLARE
v_grade CHAR(1) := UPPER('&p_grade');
v_appraisal VARCHAR2(20);
BEGIN
v_appraisal :=
CASE
WHEN v_grade = 'A' THEN 'Excellent'
WHEN v_grade = 'B' THEN 'Very Good'
WHEN v_grade = 'C' THEN 'Good'
ELSE 'No such grade'
END;
DBMS_OUTPUT.PUT_LINE('Grade: '|| v_grade || ' Appraisal ' || v_appraisal);
END;
/
********************************ne marche pas encore *********************
declare
nb number :=to_number(&note);
v_appraisal VARCHAR2(20);
BEGIN
v_appraisal :=
CASE
WHEN nb<10 THEN 'faible'
WHEN nb >10 THEN 'Very Good'
WHEN nb=20 THEN 'Good'
ELSE 'No such grade'
END;
DBMS_OUTPUT.PUT_LINE ('Grade: ' || v_appraisal);
end;
/
**********************************
declare
x number;
begin
x:=0;
<<incrementation>>
loop
x:=x+1;
exit incrementation when x>10;
dbms_output.put_line(x);
end loop incrementation ;
end;
/
**********************************************

Вам также может понравиться