> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/server-usage/stored-routines.md).

# Stored Routines

{% columns %}
{% column %}
{% content-ref url="/pages/3vLVB0EtVeFEmZdEnJrF" %}
[Stored Procedures](/docs/server/server-usage/stored-routines/stored-procedures.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Master stored procedures in MariaDB Server. This section covers creating, executing, and managing these powerful routines to encapsulate complex logic and improve application performance.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/5PkAAaVUv3KQsPAj0Mdg" %}
[Stored Functions](/docs/server/server-usage/stored-routines/stored-functions.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Utilize stored functions in MariaDB Server. This section details creating, using, and managing user-defined functions to extend SQL capabilities and streamline data manipulation.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/eY5PFregokyrG4OQE9Mu" %}
[Binary Logging of Stored Routines](/docs/server/server-usage/stored-routines/binary-logging-of-stored-routines.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
When binary logging is enabled, stored routines may require special handling (like SUPER privileges) if they are non-deterministic, to ensure consistent replication.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/WrID3zknGWk7TBYS9qXD" %}
[Stored Routine Limitations](/docs/server/server-usage/stored-routines/stored-routine-limitations.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Stored routines have specific restrictions, such as prohibiting certain SQL statements (e.g., LOAD DATA) and disallowing result sets in functions.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/bcpbtMfNgBAG3Tzgyusu" %}
[DBMS\_OUTPUT](/docs/server/server-usage/stored-routines/dbms_output.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The DBMS\_OUTPUT plugin provides Oracle-compatible output buffering functions (like PUT\_LINE), allowing stored procedures to send messages to the client.
{% endcolumn %}
{% endcolumns %}
