Solved

raise_application error encountered issue

Posted on 2009-05-20
3
911 Views
Last Modified: 2013-12-07
Please advise
I am encountering error when I try to run following procedure--

CREATE OR REPLACE PROCEDURE REMOVEINDEX
AS
BEGIN
--Altering Indexes
EXECUTE IMMEDIATE 'alter table T1 drop constraint PK_T1';
exception
raise_application_error(-20024,'fail at PK_T1');
end;
EXECUTE IMMEDIATE 'alter table T2 drop constraint PK_T2';
exception
raise_application_error(-20025,'fail at PK_T2');
end;

Error is as follows--

7/1      PLS-00103: Encountered the symbol "RAISE_APPLICATION_ERROR" when      
         expecting one of the following:                                        
         pragma when                                                            
         The symbol "pragma" was substituted for "RAISE_APPLICATION_ERROR"      
         to continue.                                                          
                                                                               
8/1      PLS-00103: Encountered the symbol "END" when expecting one of the      
         following:                                                            
         pragma when                                                            
                                                                               
15/1     PLS-00103: Encountered the symbol "RAISE_APPLICATION_ERROR" when      
Thanks
0
Comment
Question by:sunilbains
  • 2
3 Comments
 
LVL 34

Expert Comment

by:johnsone
ID: 24433322
You are missing a when clause to the exception.  Assuming you want to raise the exception for all errors, this should be what you are looking for.
CREATE OR REPLACE PROCEDURE REMOVEINDEX

AS

BEGIN

--Altering Indexes

EXECUTE IMMEDIATE 'alter table T1 drop constraint PK_T1';

exception

when others then

raise_application_error(-20024,'fail at PK_T1');

end;

EXECUTE IMMEDIATE 'alter table T2 drop constraint PK_T2';

exception

when others then

raise_application_error(-20025,'fail at PK_T2');

end;

Open in new window

0
 
LVL 34

Accepted Solution

by:
johnsone earned 500 total points
ID: 24433338
That won't work either.  You are missing some begins as well.
CREATE OR REPLACE PROCEDURE REMOVEINDEX

AS

BEGIN

--Altering Indexes

  begin

    EXECUTE IMMEDIATE 'alter table T1 drop constraint PK_T1';

  exception

    when others then

      raise_application_error(-20024,'fail at PK_T1');

  end;

  begin

    EXECUTE IMMEDIATE 'alter table T2 drop constraint PK_T2';

  exception

    when others then

      raise_application_error(-20025,'fail at PK_T2');

  end;

end;

/

Open in new window

0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Background In several of the companies I have worked for, I noticed that corporate reporting is off loaded from the production database and done mainly on a clone database which needs to be kept up to date daily by various means, be it a logical…
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video explains at a high level with the mandatory Oracle Memory processes are as well as touching on some of the more common optional ones.
This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now