set serveroutput on DECLARE X EMP.ENAME%TYPE; BEGIN SELECT ENAME INTO X FROM EMP WHERE job='&x'; DBMS_OUTPUT.PUT_LINE(x); END; / set serveroutput on select * from emp; select * from emp where job='PRESIDENT'; select * from emp where job='MANAGER'; select * from emp where job='x'; / DECLARE X EMP.ENAME%TYPE; BEGIN SELECT ENAME INTO X FROM EMP WHERE job='&x'; DBMS_OUTPUT.PUT_LINE(x); EXCEPTION WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN dbms_output.put_line('Nem tudtam egyértelműen azonosítani a dolgozót'); END; / DECLARE X EMP.ENAME%TYPE; BEGIN SELECT ENAME INTO X FROM EMP WHERE job='&x'; DBMS_OUTPUT.PUT_LINE(x); EXCEPTION WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN RAISE_APPLICATION_ERROR(-20001,'Nem tudtam egyértelműen azonosítani a dolgozót'); END; / set serveroutput on DECLARE v_ber emp.sal%TYPE; v_veznev emp.ename%TYPE; BEGIN v_ber := 1250; SELECT ename INTO v_veznev FROM emp WHERE sal = v_ber; DBMS_OUTPUT.PUT_LINE(v_veznev ); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Nincs ilyen fizetés'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('Több embernek is ez a fizetése'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Egyéb hiba'); END; / set serveroutput on DECLARE nincs_vevo EXCEPTION; BEGIN DBMS_OUTPUT.PUT_LINE('Ez vegrehajtodik'); RAISE nincs_vevo; DBMS_OUTPUT.PUT_LINE('Ez nem hajtodik vegre'); EXCEPTION WHEN nincs_vevo THEN DBMS_OUTPUT.PUT_LINE('Nincs itt semmi hiba'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Egyéb hiba'); END; / declare zaszlo boolean :=true; begin DECLARE sajathiba EXCEPTION; PRAGMA EXCEPTION_INIT(sajathiba, -20002); BEGIN DBMS_OUTPUT.PUT_LINE('Ez vegrehajtodik'); RAISE sajathiba; DBMS_OUTPUT.PUT_LINE('Ez nem hajtodik vegre'); EXCEPTION WHEN sajathiba THEN DBMS_OUTPUT.PUT_LINE('Nincs hiba');zaszlo :=false; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Egyéb hiba'); END; DBMS_OUTPUT.PUT_LINE('folytatás'); if zaszlo then DBMS_OUTPUT.PUT_LINE('igaz'); else DBMS_OUTPUT.PUT_LINE('hamis'); end if; end; / -- ------------------------------------------------------------ drop table tmp; CREATE TABLE tmp ( szam NUMBER(20) ); CREATE OR REPLACE TRIGGER kiírás BEFORE INSERT ON tmp BEGIN DBMS_OUTPUT.PUT_LINE('Új sort fogunk beszúrni'); END; / CREATE OR REPLACE TRIGGER kiiras2 AFTER INSERT ON tmp BEGIN DBMS_OUTPUT.PUT_LINE('Új sort szúrtunk be'); END; / INSERT INTO tmp VALUES(3322); select * from tmp; DROP TABLE tmp; drop trigger kiiras; drop trigger kiiras2; -- ----------------------------------------------------------------------------------- CREATE or replace TRIGGER NESZE AFTER INSERT OR UPDATE OR DELETE ON tmp BEGIN DBMS_OUTPUT.PUT_LINE(CASE WHEN INSERTING THEN 'Beszúrtunk' WHEN UPDATING THEN 'Módosítottunk' WHEN DELETING THEN 'Töröltünk' END); END; / INSERT INTO tmp VALUES(1122); update tmp set szam=2*szam; delete tmp; select * from tmp; set serveroutput on insert into dept values(60,'semmit','sehol'); set serveroutput on delete from dept where deptno=60; CREATE TRIGGER minimálbér AFTER UPDATE OF sal ON emp REFERENCING OLD AS régi NEW AS új FOR EACH ROW WHEN (régi.sal>új.sal AND új.sal<500) begin UPDATE emp SET sal= :régi.sal WHERE empno= :régi.empno; End; / set serveroutput on DECLARE a INTEGER := 2**2*3**2; b INTEGER := (2**(2*3))**2; c INTEGER := 2**((2*3)**2); -- d INTEGER := 2**2**3**2; BEGIN DBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a)); -- 36 DBMS_OUTPUT.PUT_LINE('b = ' || TO_CHAR(b)); -- 36 DBMS_OUTPUT.PUT_LINE('c = ' || TO_CHAR(c)); -- 36 -- DBMS_OUTPUT.PUT_LINE('d = ' || TO_CHAR(d)); -- 36 END; / exec droppolo; /