MariaDB starting with 10.3.5
----------------------------
Oracle-style packages were introduced in MariaDB 10.3.5.

Syntax
------

SHOW CREATE PACKAGE BODY  [ db_name . ] package_name

Description
-----------

The SHOW CREATE PACKAGE BODY statement can be used when Oracle SQL_MODE is set.

Shows the CREATE statement that creates the given package body (i.e. the
implementation).

Examples
--------

SHOW CREATE PACKAGE BODY employee_tools\G
*************************** 1. row ***************************
    Package body: employee_tools
      sql_mode:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS
NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
 Create Package Body: CREATE DEFINER="root"@"localhost" PACKAGE BODY
"employee_tools" AS

stdRaiseAmount DECIMAL(10,2):=500;

PROCEDURE log (eid INT, ecmnt TEXT) AS
 BEGIN
  INSERT INTO employee_log (id, cmnt) VALUES (eid, ecmnt);
 END;

PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)) AS
  eid INT;
 BEGIN
  INSERT INTO employee (name, salary) VALUES (ename, esalary);
  eid:= last_insert_id();
  log(eid, 'hire ' || ename);
 END;

FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2) AS
  nSalary DECIMAL(10,2);
 BEGIN
  SELECT salary INTO nSalary FROM employee WHERE id=eid;
  log(eid, 'getSalary id=' || eid || ' salary=' || nSalary);
  RETURN nSalary;
 END;

PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)) AS
 BEGIN
  UPDATE employee SET salary=salary+amount WHERE id=eid;
  log(eid, 'raiseSalary id=' || eid || ' amount=' || amount);
 END;

PROCEDURE raiseSalaryStd(eid INT) AS
 BEGIN
  raiseSalary(eid, stdRaiseAmount);
  log(eid, 'raiseSalaryStd id=' || eid);
 END;

BEGIN  
 log(0, 'Session ' || connection_id() || ' ' || current_user || ' started');
END
character_set_client: utf8
collation_connection: utf8_general_ci
 Database Collation: latin1_swedish_ci

URL: https://mariadb.com/kb/en/show-create-package-body/