Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- A)
- set serveroutput on
- declare
- angajat emp%ROWTYPE;
- nume_dept dept.dname%TYPE;
- begin
- SELECT * INTO angajat FROM emp WHERE ename = '&nume';
- SELECT dname INTO nume_dept FROM dept WHERE deptno = angajat.deptno;
- dbms_output.put_line(nume_dept);
- end;
- /
- B)
- declare
- nume_dept VARCHAR(20);
- begin
- SELECT dname INTO nume_dept FROM emp e, dept d WHERE d.deptno = e.deptno AND ename = '&nume';
- dbms_output.put_line(nume_dept);
- end;
- C)
- declare
- angajat emp%ROWTYPE;
- begin
- SELECT * INTO angajat FROM emp WHERE ename = '&nume';
- UPDATE emp SET job = 'EXPERT' WHERE sal > 2800;
- end;
- /
- D)
- declare
- salariu INT;
- begin
- SELECT sal INTO salariu FROM emp WHERE ename = '&nume';
- IF salariu > 3000 THEN
- dbms_output.put_line('f bun');
- ELSIF salariu > 2500 THEN
- dbms_output.put_line('ok');
- ELSIF salariu > 2000 THEN
- dbms_output.put_line('aproape ok');
- ELSE
- dbms_output.put_line('nu');
- END IF;
- end;
- /
- E)
- declare
- nr INT;
- begin
- nr := &valoare;
- FOR i IN 2..(nr/2) LOOP
- IF MOD(nr, i) = 0 THEN
- dbms_output.put_line(nr || 'e multiplu de ' || i);
- END IF;
- END LOOP;
- end;
- /
- F)
- declare
- salariu INT;
- sal_mediu INT;
- begin
- SELECT sal INTO salariu FROM emp WHERE ename = 'JAMES';
- SELECT AVG(sal) INTO sal_mediu FROM emp WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'JAMES');
- IF sal_mediu > salariu THEN
- UPDATE emp SET sal = sal * 1.5 WHERE ename = 'JAMES';
- END IF;
- end;
- /
- H)declare
- i number(3) :=0;
- a number(6) :=0;
- begin
- while i<=100 loop
- dbms_output.put_line('nr:'||i);
- i := i + 1;
- a := a+i-1;
- dbms_output.put_line('suma:'||a);
- end loop;
- end;
- /
- nr:100
- suma:5050
- I)declare
- i number(3) :=0;
- a number(6) :=0;
- begin
- loop
- dbms_output.put_line('nr:'||i);
- i := i + 1;
- a := a+i-1;
- dbms_output.put_line('suma:'||a);
- exit when i=101 ;
- end loop;
- end;
- /
- J)
- set serveroutput on;
- declare
- i VARCHAR(10);
- nr VARCHAR(10);
- begin
- i := '&val';
- select REPLACE(i, '8', '0') into nr from DUAL;
- dbms_output.put_line('nr:'||nr);
- end;
- /
- K)
- set serveroutput on;
- declare
- curent INT;
- begin
- select deptno into curent from dept where rownum < 2 order by deptno desc;
- dbms_output.put_line('curent:' || curent);
- for i in 1..5 loop
- curent := curent + 10;
- insert into dept(deptno,dname,loc) values(curent,DBMS_RANDOM.string('x',10),DBMS_RANDOM.string('x',5));
- end loop;
- end;
- /
- L)
- set serveroutput on
- declare
- i int;
- begin
- for i in 1..20 loop
- if i != 6 and i != 11 and i != 18 then
- insert into test(id) values(i);
- end if;
- end loop;
- end;
- /
- M)
- declare
- sal emp.sal%TYPE;
- com emp.comm%TYPE;
- nume emp.ename%TYPE;
- begin
- nume := '&name';
- select emp.sal into sal from emp where ename = nume;
- select emp.comm into com from emp where ename = nume;
- if com is NULL then
- dbms_output.put_line('Nu are comision');
- elsif sal < 1000 then
- update emp set comm = comm + (10/100)*sal where ename = nume;
- elsif sal > 1000 and sal < 1500 then
- update emp set comm = comm + (15/100)*sal where ename = nume;
- elsif sal > 1500 then
- update emp set comm = comm + (20/100)*sal where ename = nume;
- end if;
- end;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement