Thanks DAvid for your time. When I write and run this code at the command line it works as you said. But when I tried to write and run it from a sql file. It fails with the same errors as mentioned above. It created the PACKAGE and PACKAGE BODY successfully tho with no errors but when I tried to execute, it is giving the same error but shows no errors when I typed SHOW ERRORS.
SQL> @/home/user/DBRelated/pkg_test_globals.sql; Package created. Package body created. SQL> exec /home/user/DBRelated/pack_test_globals.increase_and_display; BEGIN /home/user/DBRelated/pack_test_globals.increase_and_display; END; * ERROR at line 1: ORA-06550: line 1, column 7: PLS-00103: Encountered the symbol "/" when expecting one of the following: begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe SQL> show errors; No errors.. Please help. I need to have my procedure in package body in sql script file. /********************************************************* CODE IN THE SCRIPT FILE ( pkg_test_globals.sql ) */ CREATE OR REPLACE PACKAGE pack_test_globals IS v_public NUMBER :=0; procedure increase_and_display; end pack_test_globals; / create or replace PACKAGE BODY pack_test_globals IS v_private number:= 0; procedure increase_and_display IS v_local NUMBER:= 0; BEGIN v_public := v_public + 1; v_private := v_private + 1; v_local := v_local + 1; DBMS_OUTPUT.PUT_LINE('PUBLIC VARIABLE IS ----->' || v_public); DBMS_OUTPUT.PUT_LINE('PRIVATE VARIABLE IS ----->' || v_private); DBMS_OUTPUT.PUT_LINE('LOCAL VARIABLE IS ----->' || v_local); END increase_and_display; END pack_test_globals; / Thanks, Sam On Dec 29, 6:06 am, ddf <orat...@msn.com> wrote: > On Dec 29, 3:35 am, zalesam <bindu.rang...@gmail.com> wrote: > > > > > Hi, > > I am beginner. Please help. > > > I have a stored procedure in a package and I saved this locally. I am > > not able to execute the procedure from command line. Stored the > > following code in pkg_test_global.sql file on my local machine. I am > > on Linux. > > > CREATE OR REPLACE PACKAGE pack_test_globals IS > > v_public NUMBER :=0; > > procedure increase_and_display; > > end pack_test_globals; > > > CREATE OR REPLACE PACKAGE BODY pack_test_globals IS > > v_private number:= 0; > > procedure increase_and_display IS > > v_local NUMBER:= 0; > > BEGIN > > v_public := v_public + 1; > > v_private := v_private + 1; > > v_local := v_local + 1; > > DBMS_OUTPUT.PUT_LINE('PUBLIC VARIABLE IS -----' || v_public); > > DBMS_OUTPUT.PUT_LINE('PRIVATE VARIABLE IS -----' || v_private); > > DBMS_OUTPUT.PUT_LINE('LOCAL VARIABLE IS -----' || v_local); > > END increase_and_display; > > END pack_test_globals; > > > SQL>@/home/ranganah/DBRelated/pkg_test_global.sql > > > Warning: Package created with compilation errors. > > > How do I see these warnings with compilation errors and how to resolve > > this? > > > When I tried to call the procedure I get this error. How to get over > > it. ? > > > SQL>exec /home/ranganah/DBRelated/ > > pack_test_globals.increase_and_display; > > > BEGIN /home/ranganah/DBRelated/pack_test_globals.increase_and_display; > > END; > > > * > > ERROR at line 1: > > ORA-06550: line 1, column 7: > > PLS-00103: Encountered the symbol "/" when expecting one of the > > following: > > begin case declare exit for goto if loop mod null pragma > > raise return select update while with <an identifier> > > <a double-quoted delimited-identifier> <a bind variable> << > > close current delete fetch lock insert open rollback > > savepoint set sql execute commit forall merge pipe > > > Please Help me resolve this. I am blocked. > > > Thanks, > > Sam > > Modify your code: > > CREATE OR REPLACE PACKAGE pack_test_globals IS > v_public NUMBER :=0; > procedure increase_and_display; > end pack_test_globals; > / > > show errors > > CREATE OR REPLACE PACKAGE BODY pack_test_globals IS > v_private number:= 0; > procedure increase_and_display IS > v_local NUMBER:= 0; > BEGIN > v_public := v_public + 1; > v_private := v_private + 1; > v_local := v_local + 1; > DBMS_OUTPUT.PUT_LINE('PUBLIC VARIABLE IS -----' || v_public); > DBMS_OUTPUT.PUT_LINE('PRIVATE VARIABLE IS -----' || > v_private); > DBMS_OUTPUT.PUT_LINE('LOCAL VARIABLE IS -----' || v_local); > END increase_and_display; > END pack_test_globals; > / > > show errors > > But, I don't receive the same message you do: > > SQL> CREATE OR REPLACE PACKAGE pack_test_globals IS > 2 v_public NUMBER :=0; > 3 procedure increase_and_display; > 4 end pack_test_globals; > 5 / > > Package created. > > SQL> > SQL> show errors > No errors. > SQL> > SQL> CREATE OR REPLACE PACKAGE BODY pack_test_globals IS > 2 v_private number:= 0; > 3 procedure increase_and_display IS > 4 v_local NUMBER:= 0; > 5 BEGIN > 6 v_public := v_public + 1; > 7 v_private := v_private + 1; > 8 v_local := v_local + 1; > 9 DBMS_OUTPUT.PUT_LINE('PUBLIC VARIABLE IS -----' || > v_public); > 10 DBMS_OUTPUT.PUT_LINE('PRIVATE VARIABLE IS -----' || > v_private); > 11 DBMS_OUTPUT.PUT_LINE('LOCAL VARIABLE IS -----' || > v_local); > 12 END increase_and_display; > 13 END pack_test_globals; > 14 / > > Package body created. > > SQL> > SQL> show errors > No errors. > SQL> > > And it runs without error: > > SQL> set serveroutput on size 1000000 > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----2 > PRIVATE VARIABLE IS -----2 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----3 > PRIVATE VARIABLE IS -----3 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----4 > PRIVATE VARIABLE IS -----4 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----5 > PRIVATE VARIABLE IS -----5 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----6 > PRIVATE VARIABLE IS -----6 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----7 > PRIVATE VARIABLE IS -----7 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> exec pack_test_globals.increase_and_display > PUBLIC VARIABLE IS -----8 > PRIVATE VARIABLE IS -----8 > LOCAL VARIABLE IS -----1 > > PL/SQL procedure successfully completed. > > SQL> > > My guess is that you're running your code as written, which won't work > (notice how I modified your code in the working example) which will > produce that error: > > SQL> CREATE OR REPLACE PACKAGE pack_test_globals IS > 2 v_public NUMBER :=0; > 3 procedure increase_and_display; > 4 end pack_test_globals; > 5 > 6 > 7 CREATE OR REPLACE PACKAGE BODY pack_test_globals IS > 8 v_private number:= 0; > 9 procedure increase_and_display IS > 10 v_local NUMBER:= 0; > 11 BEGIN > 12 v_public := v_public + 1; > 13 v_private := v_private + 1; > 14 v_local := v_local + 1; > 15 DBMS_OUTPUT.PUT_LINE('PUBLIC VARIABLE IS -----' || > v_public); > 16 DBMS_OUTPUT.PUT_LINE('PRIVATE VARIABLE IS -----' || > v_private); > 17 DBMS_OUTPUT.PUT_LINE('LOCAL VARIABLE IS -----' || > v_local); > 18 END increase_and_display; > 19 END pack_test_globals; > 20 > 21 / > > Warning: Package created with compilation errors. > > SQL> show errors > Errors for PACKAGE PACK_TEST_GLOBALS: > > LINE/COL ERROR > -------- > ----------------------------------------------------------------- > 7/1 PLS-00103: Encountered the symbol "CREATE" > SQL> > > Also notice the 'show errors' command after each section of PL/SQL > code; it produces the list of encountered errors and the line numbers > where they occurred. And notice that if you change your code to what > I posted you get no errors. > > David Fitzjarrell --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Oracle PL/SQL" group. To post to this group, send email to Oracle-PLSQL@googlegroups.com To unsubscribe from this group, send email to oracle-plsql-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Oracle-PLSQL?hl=en -~----------~----~----~----~------~----~------~--~---