Re: Redeclaration of Global variables...

  • From: "Manu Sankar" <manusankar@xxxxxxxxx>
  • To: Oracle-L@xxxxxxxxxxxxx
  • Date: Thu, 16 Mar 2006 19:42:14 +0530

my question is why isnt this being  caught at compile-time/run-time ?

On 3/16/06, rjamya <rjamya@xxxxxxxxx> wrote:
>
> question ... why would you declare same variable twice in the same
> scope anyways ...?? It is a bad programming practice ...
>
> Raj
>
> On 3/16/06, Manu Sankar <manusankar@xxxxxxxxx> wrote:
> > 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
> >
> >
> >
>
>
> --
> ----------------------------------------------
> Got RAC?
>

Other related posts: