Redeclaration of Global variables...

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

Other related posts: