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
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?
I have run the same procudure, and it worked with me...!here are results and the values which i keyed in...
Enter value for lastname: khan
Enter value for firstname: nabeel
Enter value for hours: 5
Enter value for rate: 5
Enter value for numberofdependents: 5
Enter value for yearsworked: 01
PL/SQL procedure successfully completed.
--in fact if I use these values I get the error..!
Enter value for lastname: khan
Enter value for firstname: sahil
Enter value for hours: 8.5
Enter value for rate: 20.5
Enter value for numberofdependents: 5
Enter value for yearsworked: 1
DECLARE
*
ERROR at line 1:
ORA-01438: value larger than specified precision allows for this column
ORA-06512: at line 25
--This was the example for whats was goin on right?
So, dear the problem is in your insert statment which is...
INSERT INTO SAL_HIST VALUES('LASTNAME', 'FIRSTNAME', HOURS, RATE, DEPEN, TAX,
BONUS, YEARS, NETSALARY);
on the other hand the table desc is
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));
You are inserting NETSALARY IN THE YEARS COLUMN...change the statment and keep the years column after the netsal it will work fine!
Bookmarks