Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Redeclaration of Global variables...
my question is why isnt this being caught at compile-time/run-time ?
On 3/16/06, rjamya <rjamya_at_gmail.com> 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_at_gmail.com> 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?
>
-- http://www.freelists.org/webpage/oracle-lReceived on Thu Mar 16 2006 - 08:12:14 CST