Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PLS-00103: Encountered the symbol "CREATE"

What is the problem with this package as it is giving an error?

CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS  AS     PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2); END PKG_SHOW_CUST_DETAILS;  CREATE OR REPLACE PACKAGE BODY PKG_SHOW_CUST_DETAILS  AS     PROCEDURE SHOW_CUST_DETAILS(myArg VARCHAR2)     IS     BEGIN         DBMS_OUTPUT.PUT_LINE(myArg);             END SHOW_CUST_DETAILS;  END PKG_SHOW_CUST_DETAILS; / 

On compilation of the above script, I am getting the following errors:

 SQL> show errors Errors for PACKAGE PKG_SHOW_CUST_DETAILS:  LINE/COL ERROR -------- ----------------------------------------------------------------- 6/1      PLS-00103: Encountered the symbol "CREATE" 

The package is very simple and I am not able to compile it. I searched earlier answers on this error message and none of them did solve my problem. I am consistently getting this error for 2 more packages and I am stuck on this error message no matter what I do. I even tried to strip everything to the barest minimum as shown above, but the error message does not seem to go away. BTW I am executing this on command line SQL plus session after logging into my Oracle 11G database. YES- SET SERVEROUTPUT ON -- is executed and the error message has nothing to do with this command.

What am I missing?

like image 855
Surya Avatar asked Dec 02 '13 17:12

Surya


People also ask

How do you resolve PLS 00103 encountered the symbol?

You have used elseif which in terms of PL/SQL is wrong. That need to be replaced with ELSIF . So your code should appear like this.


1 Answers

At line 5 there is a / missing.

There is a good answer on the differences between ; and / here.

Basically, when running a CREATE block via script, you need to use / to let SQLPlus know when the block ends, since a PL/SQL block can contain many instances of ;.

like image 197
Drumbeg Avatar answered Sep 19 '22 17:09

Drumbeg