title: PL/SQL numeric or value error: number precision too large
body: <p>I've got a oracle 10g PL/SQL program that I'm trying to get to run, </p>
  
  <p>Program</p>
  
  <pre><code>set serveroutput on size 10000;
  DECLARE
       membership varchar2(1) :='Y';
       shipping number(2,2);
       quantity number(3) :=0;
  BEGIN
     if membership = 'Y' then 
        if quantity  &lt;= 3 then
          shipping := 3.00;
        elsif quantity &gt; 3 and quantity &lt;= 6 then
          shipping := 5.00;
        elsif quantity &gt; 6 and quantity &lt;= 10 then
          shipping := 7.00;
        elsif quantity &gt; 10 then
          shipping := 9.00;
     end if;  
     elsif membership = 'N' then
        if quantity  &lt;= 3 then
          shipping := 5.00;
        elsif quantity &gt; 3 and quantity &lt;= 6 then
          shipping := 7.50;
        elsif quantity &gt; 6 and quantity &lt;= 10 then
          shipping := 10.00;
        elsif quantity &gt; 10 then
          shipping := 12.00;
     end if;  
  end if;
  DBMS_OUTPUT.PUT_LINE(shipping);
  END;
  </code></pre>
  
  <p>The error I keep getting. At first I thought it was just because I was assigning quantity to a number(3), so then I would compare with 003 but that didn't work either.</p>
  
  <pre><code> Error report:
   ORA-06502: PL/SQL: numeric or value error: number precision too large
   ORA-06512: at line 8
   06502. 00000 -  "PL/SQL: numeric or value error%s"
   *Cause:    
   *Action:
  </code></pre>