Title: RE: Can I use "GOTO" with variables in PL/SQL?

you can do this (called as indirect referencing) within pl/sql using dynamic sql.

some info at http://www.pinnaclepublishing.com/OP/OPmag.nsf/0/8196D5C00E2B1E7C852568DB004FFBA4 ...
Raj
______________________________________________________
Rajendra Jamadagni              MIS, ESPN Inc.
Rajendra dot Jamadagni at ESPN dot com
Any opinion expressed here is personal and doesn't reflect that of ESPN Inc.
QOTD: Any clod can have facts, but having an opinion is an art!


-----Original Message-----
From: Mercadante, Thomas F [mailto:[EMAIL PROTECTED]]
Sent: Friday, December 06, 2002 11:41 AM
To: Multiple recipients of list ORACLE-L
Subject: RE: Can I use "GOTO" with variables in PL/SQL?


Bill,

Sadly, I don't think this is possible.  The PL/SQL compiler is just not that
dynamic.

Pretty cooleo idea, though.

Tom Mercadante
Oracle Certified Professional


-----Original Message-----
Sent: Friday, December 06, 2002 11:19 AM
To: Multiple recipients of list ORACLE-L


Good day, all:

I'm writing a script where the user can specify at run-time if they want to
run the entire script or just one numbered piece.  One way I thought of
implementing this is pasted below, but the line "goto v_crlabel" is not
recognized - evidently the PL/SQL engine is not substituting in the value
for  the variable.

Does anyone know if this is possible?  If not, I can just prefix each block
by an if..then statement to test for the value in v_cr . . . but I thought
it could be cool to try it this way.

Thanks
bill

***************************************************************

accept i_cr prompt 'Enter CR to run:  '

declare

v_cr number := &&i_cr;
v_crlabel varchar2(30) := 'CR' || to_char(v_cr);

begin

if v_cr is not null then
    goto v_crlabel;
else
    goto endrun;
end if;

<<CR5>>
dbms_output.put_line('Successfully went to CR5');
goto endrun;

<<CR6>>
dbms_output.put_line('Successfully went to CR6');
goto endrun;

<<CR7>>
dbms_output.put_line('Successfully went to CR7');
goto endrun;

<<ENDRUN>>
NULL;
dbms_output.put_line('Went to ENDRUN');

end;
/


--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Magaliff, Bill
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Mercadante, Thomas F
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

********************************************************************This e-mail 
message is confidential, intended only for the named recipient(s) above and may 
contain information that is privileged, attorney work product or exempt from 
disclosure under applicable law. If you have received this message in error, or are 
not the named recipient(s), please immediately notify corporate MIS at (860) 766-2000 
and delete this e-mail message from your computer, Thank 
you.*********************************************************************2


Reply via email to