Hi, While redeclaration of variables is not allowed in anonymous blocks, the same is being allowed in Package specs. What could be the reason behind it ? Following script can give you a test case declare g_num number(2):=10; g_num varchar2(10):='test'; begin dbms_output.put_line('g_num is '||g_num); end; / You will hit the error PLS-00371: at most one declaration for 'G_NUM' is permitted in the declaration section Try this create package glb_test as g_num number:=10; g_num varchar2(10):='test'; end; / exec dbms_output.put_line('G_num is '||glb_test.g_num); You dont hit any error though g_num has been declared twice.... Thanks -Manu