16-1:
	DECLARE
	  v_ename emp.ename%TYPE;
	BEGIN
	  SELECT ename INTO v_ename FROM emp WHERE empno=&no;
	  dbms_output.put_line('Ա:'||v_ename);
	END;
	/
16-2:
	DECLARE
	  v_ename emp.ename%TYPE;
	BEGIN
	  SELECT ename INTO v_ename FROM emp WHERE empno=&no;
	  dbms_output.put_line('Ա:'||v_ename);
	EXCEPTION
	  WHEN NO_DATA_FOUND THEN
	    dbms_output.put_line('ԱŲȷʵԱţ');
	END;
	/
16-3:
	DECLARE
	  v_ename emp.ename%TYPE;
	BEGIN
	  SELECT ename INTO v_ename FROM emp WHERE sal=&salary;
	  dbms_output.put_line(':'||v_ename);
	EXCEPTION
	  WHEN NO_DATA_FOUND THEN
	    dbms_output.put_line('ڸùֵĹԱ');
	  WHEN TOO_MANY_ROWS THEN
	    dbms_output.put_line('Աиù');
	END;
	/
16-4:
	DECLARE
	  e_integrity EXCEPTION;
	  PRAGMA EXCEPTION_INIT(e_integrity,-2291);
	  name emp.ename%TYPE:=LOWER('&name');
	  dno emp.deptno%TYPE:=&dno;
	BEGIN
	  UPDATE emp SET deptno=dno WHERE LOWER(ename)=name;
	EXCEPTION
	  WHEN e_integrity THEN
	    dbms_output.put_line('òŲ');
	END;
	/
16-5:
	DECLARE
	  e_integrity EXCEPTION;
	  e_no_rows EXCEPTION;
	  PRAGMA EXCEPTION_INIT(e_integrity,-2291);
	  name emp.ename%TYPE:=LOWER('&name');
	  dno emp.deptno%TYPE:=&dno;
	BEGIN
	  UPDATE emp SET deptno=dno WHERE LOWER(ename)=name;
	  IF SQL%NOTFOUND THEN
	     RAISE e_no_rows;
	  END IF;
	EXCEPTION
	  WHEN e_integrity THEN
	    dbms_output.put_line('òŲ');
	  WHEN e_no_rows THEN
	    dbms_output.put_line('ùԱ');
	END;
	/
16-6:
	BEGIN
	  DELETE FROM dept WHERE deptno=&dno;
	EXCEPTION
	  WHEN OTHERS THEN
	    dbms_output.put_line(':'||SQLCODE);
	    dbms_output.put_line('Ϣ:'||SQLERRM);
	END;
	/
16-7:
	CREATE OR REPLACE PROCEDURE update_sal
	  (name VARCHAR2,salary NUMBER)
	IS
	BEGIN
	  UPDATE emp SET sal=salary WHERE LOWER(ename)=LOWER(name);
	  IF SQL%NOTFOUND THEN
	     RAISE_APPLICATION_ERROR(-20000,'ùԱ');
	  END IF;
	END;
	/
	exec update_sal('mary',1000)
16-8:
	CREATE OR REPLACE PROCEDURE dead_code AS
	BEGIN
	  IF TRUE THEN
	    dbms_output.put_line('TRUE');
	  ELSE
	    dbms_output.put_line('FALSE'); -- 
	  END IF;
	END;
	/
16-9:
	ALTER SESSION SET plsql_warnings='ENABLE:ALL';
	CREATE OR REPLACE PROCEDURE dead_code AS
	BEGIN
	  IF TRUE THEN
	    dbms_output.put_line('TRUE');
	  ELSE
	    dbms_output.put_line('FALSE'); -- 
	  END IF;
	END;
	/
	show errors
16-10:
	exec dbms_warning.set_warning_setting_string('ENABLE:ALL' ,'SESSION');
	CREATE OR REPLACE PROCEDURE update_sal
	(name VARCHAR2,salary VARCHAR2)
	IS
	BEGIN
	  UPDATE emp SET sal=salary WHERE ename=name;
	END;
	/
	show errors










