--PROGRAM TO ASK USER TO ENTER DATA, CALCULATE A PAYCHECK, DISPLAY A PAYCHECK
--AND MAINTAIN A EMPLOYEE HISTORY
DROP TABLE SAL_HIST;

CREATE TABLE SAL_HIST(
LASTNAME VARCHAR2(20),
FIRSTNAME VARCHAR2(20),
HOURS NUMBER(10),
RATE NUMBER(10),
DEPEN NUMBER(10),
TAX NUMBER(10),
BONUS NUMBER(10),
NETSALARY NUMBER(10),
YEARS NUMBER(2));

SET SERVEROUTPUT ON;
SET VERIFY OFF;

--ASSIGN NEEDED VARIABLES

DECLARE
LASTNAME VARCHAR2(20);
FIRSTNAME VARCHAR2(20);
HOURS SAL_HIST.HOURS%TYPE;
RATE SAL_HIST.RATE%TYPE;
DEPEN SAL_HIST.DEPEN%TYPE;
TAX SAL_HIST.TAX%TYPE;
BONUS SAL_HIST.BONUS%TYPE;
NETSALARY SAL_HIST.NETSALARY%TYPE;
YEARS SAL_HIST.YEARS%TYPE;
DATE VARCHAR2(12);
BEGIN
--ASK USER TO ENTER DATA

LASTNAME := '&LASTNAME';
FIRSTNAME := '&FIRSTNAME';
HOURS := '&HOURS';
RATE := '&RATE';
DEPEN := '&NUMBEROFDEPENDENTS';
YEARS := '&YEARSWORKED';

--MAKE SALARY CALCULATIONS

BONUS := YEARS * 30;
TAX := (HOURS*RATE+BONUS) * .2 / DEPEN;
NETSALARY := HOURS * RATE - TAX + BONUS;

--CREATE HISTORY

INSERT INTO SAL_HIST VALUES('LASTNAME', 'FIRSTNAME', HOURS, RATE, DEPEN, TAX,
BONUS, YEARS, NETSALARY);
SELECT SYSDATE INTO DATE FROM DUAL;
--PRINT CHECK
--DBMS_OUTPUT.PUT_LINE('DATE'||''||DATE);
--DBMS_OUTPUT.PUT_LINE('PAY TO THE ORDER OF:'||''||LASTNAME||''|| FIRSTNAME
-- ||'$'||NETSALARY);
END;
/
I'm getting an error message on output that says, "ERROR at line 1:
ORA-01438: value larger than specified precision allows for this column
ORA-06512: at line 30"
I can't seem to find the which column is too small can someone please help me?