Comments embedded.

On Dec 29, 11:59 am, zalesam <[email protected]> wrote:
> 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
>

Why on earth are you attempting to execute the stored procedure from
the source script?????  You successfully executed the script BEFORE
you attempted to execute the package procedure, and did you not see
how to execute such procedures from  my previous post?  I provided 7
examples of how to call such a procedure.  I will repost that
information HERE in hopes you'll see the error of your ways:

SQL> exec pack_test_globals.increase_and_display

Notice there is no file name supplied; the package is now RESIDENT in
your database and ready to use.

> 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 <[email protected]> wrote:
>
>
>
> > On Dec 29, 3:35 am, zalesam <[email protected]> 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- Hide quoted text -
>
> - Show quoted text -

Execute the procedure as I've illustrated above and in my prior
response.


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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to