Nested blocks in PL/SQL

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mourad

    Nested blocks in PL/SQL

    Hi all,

    This is an example of a nested block, however it seems Oracle doesn't
    like the syntax. see the error below:

    declare
    begin
    declare
    begin

    end; -- <<< causes error!! any idea
    end;

    ERROR at line 5:
    ORA-06550: line 5, column 7:
    PLS-00103: Encountered the symbol "EXCEPTION" 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
    <a single-quoted SQL stringpipe



    Thanks in advance,

    Mourad
  • Mark C. Stock

    #2
    Re: Nested blocks in PL/SQL

    "Mourad" <mourad_barakat @yahoo.comwrote in message
    news:6554b826.0 402061410.7355e 091@posting.goo gle.com...
    | Hi all,
    |
    | This is an example of a nested block, however it seems Oracle doesn't
    | like the syntax. see the error below:
    |
    | declare
    | begin
    | declare
    | begin
    |
    | end; -- <<< causes error!! any idea
    | end;
    |
    | ERROR at line 5:
    | ORA-06550: line 5, column 7:
    | PLS-00103: Encountered the symbol "EXCEPTION" 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
    | <a single-quoted SQL stringpipe
    |
    |
    |
    | Thanks in advance,
    |
    | Mourad

    you'll need to post the actual code that caused the error, what you posed
    does not show what is actually happening (ie, the error is on EXCEPTION, you
    have no EXCEPTION in what you posted)


    Comment

    • Mourad

      #3
      Re: Nested blocks in PL/SQL

      Mark, you are right.. here is a paste from the sqlplus screen:



      SQLdeclare
      2
      3 begin
      4
      5 declare
      6
      7 begin
      8
      9 end;
      10
      11 end;
      12 /
      end;
      *
      ERROR at line 9:
      ORA-06550: line 9, column 2:
      PLS-00103: Encountered the symbol "END" 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
      <a single-quoted SQL stringpipe


      SQL>


      Thanks,
      Mourad




      "Mark C. Stock" <mcstockX@Xenqu ery .comwrote in message news:<86-dnbmYwfhMwbndRV n-jg@comcast.com> ...
      "Mourad" <mourad_barakat @yahoo.comwrote in message
      news:6554b826.0 402061410.7355e 091@posting.goo gle.com...
      | Hi all,
      |
      | This is an example of a nested block, however it seems Oracle doesn't
      | like the syntax. see the error below:
      |
      | declare
      | begin
      | declare
      | begin
      |
      | end; -- <<< causes error!! any idea
      | end;
      |
      | ERROR at line 5:
      | ORA-06550: line 5, column 7:
      | PLS-00103: Encountered the symbol "EXCEPTION" 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
      | <a single-quoted SQL stringpipe
      |
      |
      |
      | Thanks in advance,
      |
      | Mourad
      >
      you'll need to post the actual code that caused the error, what you posed
      does not show what is actually happening (ie, the error is on EXCEPTION, you
      have no EXCEPTION in what you posted)

      Comment

      • Tony

        #4
        Re: Nested blocks in PL/SQL

        mourad_barakat@ yahoo.com (Mourad) wrote in message news:<6554b826. 0402090745.1fa0 b6c5@posting.go ogle.com>...
        Mark, you are right.. here is a paste from the sqlplus screen:
        >
        >
        >
        SQLdeclare
        2
        3 begin
        4
        5 declare
        6
        7 begin
        8
        9 end;
        10
        11 end;
        12 /
        end;
        *
        ERROR at line 9:
        ORA-06550: line 9, column 2:
        PLS-00103: Encountered the symbol "END" 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
        <a single-quoted SQL stringpipe
        You are not allowed to create a BEGIN/END block with NO executable
        statements in it. At the very least you should put a "null;"
        statement in there:

        declare
        begin
        declare
        begin
        null;
        end;
        end;
        /

        (The "declare" keywords are redundant also unless you actually declare
        variables, but do not cause a syntax error.)

        Comment

        Working...