Details

    • 10.2.2-3, 10.2.2-1, 10.2.2-2, 10.2.2-4, 10.1.18

    Description

      Add support for Oracle-style EXECUTE IMMEDIATE statement.

      This is used to execute a sql-statement stored in a string or variable, with possible arguments.

      Examples:

      EXECUTE IMMEDIATE 'SELECT 1' 
      

      This is a shorthand for:

      prepare stmt from "select 1";
      execute stmt;
      deallocate prepare stmt;
      

      Attachments

        Issue Links

          Activity

            bar Alexander Barkov created issue -
            bar Alexander Barkov made changes -
            Field Original Value New Value
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            Example:
            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            monty Michael Widenius made changes -
            Parent MDEV-10142 [ 56873 ]
            Issue Type Task [ 3 ] Technical task [ 7 ]
            bar Alexander Barkov made changes -
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            Example:
            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.
            It's a combination of {{PREPARE}}, {{EXECUTE}} and {{DEALLOCATE}}.

            Example:
            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility
            bar Alexander Barkov made changes -
            Assignee Alexander Barkov [ bar ]
            bar Alexander Barkov made changes -
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            bar Alexander Barkov made changes -
            Assignee Alexander Barkov [ bar ] Michael Widenius [ monty ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            monty Michael Widenius made changes -
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.
            It's a combination of {{PREPARE}}, {{EXECUTE}} and {{DEALLOCATE}}.

            Example:
            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string, with possible arguments.

            Example:
            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            monty Michael Widenius made changes -
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string, with possible arguments.

            Example:
            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            monty Michael Widenius made changes -
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            or

            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            monty Michael Widenius made changes -
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            or

            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string or variable, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            This is a shorthand for:
            {code:sql}
            prepare stmt from "select 1";
            execute stmt;
            deallocate prepare stmt;
            {code}

            Another example:

            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}

            Review done. Code looks good, asked to add one comment to one place before pushing

            monty Michael Widenius added a comment - Review done. Code looks good, asked to add one comment to one place before pushing
            monty Michael Widenius made changes -
            Status In Review [ 10002 ] Stalled [ 10000 ]
            bar Alexander Barkov made changes -
            Component/s Parser [ 10201 ]
            Component/s Prepared Statements [ 10804 ]
            Fix Version/s 10.3.0 [ 22127 ]
            Fix Version/s 10.2 [ 14601 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            bar Alexander Barkov made changes -
            Assignee Michael Widenius [ monty ] Alexander Barkov [ bar ]
            Resolution Fixed [ 1 ]
            Status Closed [ 6 ] Stalled [ 10000 ]
            bar Alexander Barkov made changes -
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]

            Why does it have fix version 10.3.0 if it's been already pushed?

            elenst Elena Stepanova added a comment - Why does it have fix version 10.3.0 if it's been already pushed?
            bar Alexander Barkov made changes -
            Fix Version/s 10.2.3 [ 22115 ]

            Originally this was planned for 10.3.0, but then we decided to backport it to 10.2. I forgot to update "Fix version" after backporting.

            Added 10.2.3 to the "Fix version" list. Thanks for noticing this!

            bar Alexander Barkov added a comment - Originally this was planned for 10.3.0, but then we decided to backport it to 10.2. I forgot to update "Fix version" after backporting. Added 10.2.3 to the "Fix version" list. Thanks for noticing this!
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility Compatibility NRE-307517
            bar Alexander Barkov made changes -
            alvinr Alvin Richards (Inactive) made changes -
            Labels Compatibility NRE-307517 Approved Compatibility NRE-307517
            alvinr Alvin Richards (Inactive) made changes -
            NRE Projects NRE-307517
            alvinr Alvin Richards (Inactive) made changes -
            Labels Approved Compatibility NRE-307517 Approved Compatibility
            alvinr Alvin Richards (Inactive) made changes -
            NRE Approved Yes [ 10304 ]
            alvinr Alvin Richards (Inactive) made changes -
            Labels Approved Compatibility Compatibility
            bar Alexander Barkov made changes -
            Description Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string or variable, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            This is a shorthand for:
            {code:sql}
            prepare stmt from "select 1";
            execute stmt;
            deallocate prepare stmt;
            {code}

            Another example:

            {code:sql}
            DECLARE
              plsql_block VARCHAR2(500);
              new_deptid NUMBER(4);
              new_dname VARCHAR2(30) := 'Advertising';
              new_mgrid NUMBER(6) := 200;
              new_locid NUMBER(4) := 1700;
            BEGIN
             -- Dynamic PL/SQL block invokes subprogram:
              plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';

             /* Specify bind arguments in USING clause.
                Specify mode for first parameter.
                Modes of other parameters are correct by default. */
              EXECUTE IMMEDIATE plsql_block
                USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
            END;
            /
            {code}
            Add support for Oracle-style {{EXECUTE IMMEDIATE}} statement.

            This is used to execute a sql-statement stored in a string or variable, with possible arguments.

            Examples:
            {code:sql}
            EXECUTE IMMEDIATE 'SELECT 1'
            {code}

            This is a shorthand for:
            {code:sql}
            prepare stmt from "select 1";
            execute stmt;
            deallocate prepare stmt;
            {code}

            bar Alexander Barkov made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 76690 ] MariaDB v4 [ 150775 ]

            People

              bar Alexander Barkov
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.