Академический Документы
Профессиональный Документы
Культура Документы
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
**************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(¬e);
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;
/
**********************************************