Thanks Indian2000!

Well, I am using this function VALID_DEPTNO to check the deptno for a procedure. There are two things I don't understand:
1. How can I execute VALID_DEPTNO as a stand alone function in sql*plus so that I won't get the following errors?

SQL> VARIABLE g_deptno NUMBER;
SQL> EXECUTE :g_deptno := valid_deptno (10);
BEGIN :g_deptno := valid_deptno (10); END;

*
ERROR at line 1:
ORA-06550: line 1, column 20:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


2. When I am executing the following procedure, is there a way I can avoid hard-coding the department number? Can anybody help me on this? Thanks!!
e.g. valid_deptno (40)

CREATE OR REPLACE PROCEDURE new_emp
(v_ename emp.ename%TYPE)
IS

v_job emp.job%TYPE DEFAULT 'SALESMAN';
v_mgr emp.mgr%TYPE DEFAULT 7839;
v_sal emp.sal%TYPE DEFAULT 1000;
v_comm emp.comm%TYPE DEFAULT 0;
v_deptno emp.deptno%TYPE DEFAULT 30;

BEGIN

IF valid_deptno (40) THEN

INSERT INTO emp (empno, ename, job, mgr, sal, comm, deptno)
VALUES (seq_empno.nextval, v_ename, v_job, v_mgr, v_sal, v_comm, v_deptno);

END IF;

END;
/