CREATE PROCEDURE
Function Description
Creates a stored procedure.
Precautions
Compared with the original openGauss, Dolphin modifies the CREATE PROCEDURE syntax as follows:
- The LANGUAGE option is added. 
- The syntax compatibility item [NOT] DETERMINISTIC is added. 
- The syntax compatibility item { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } is added. 
- The syntax compatibility item SQL SECURITY { DEFINER | INVOKER } is added. 
Syntax
CREATE [ OR REPLACE ] PROCEDURE procedure_name
    [ ( {[ argname ] [ argmode ] argtype [ { DEFAULT | := | = } expression ]}[,...]) ]
    [
       { IMMUTABLE | STABLE | VOLATILE }
       | { SHIPPABLE | NOT SHIPPABLE }
       | {PACKAGE}
       | [ NOT ] LEAKPROOF
       | { CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT }
       | {[ EXTERNAL |SQL ] SECURITY INVOKER | [ EXTERNAL|SQL ] SECURITY DEFINER | AUTHID DEFINER | AUTHID CURRENT_USER}
       | COST execution_cost
       | SET configuration_parameter { TO value | = value | FROM CURRENT }
       | COMMENT text
       | {DETERMINISTIC | NOT DETERMINISTIC}
       | LANGUAGE lang_name
       | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
    ][ ... ]
 { IS | AS }
plsql_body
/
Parameter Description
- LANGUAGE lang_name - Name of the language used to implement the stored procedure. Default value: plpgsql. 
- SQL SECURITY INVOKER - Specifies that the stored procedure is to be executed with the permissions of the user that calls it. This parameter can be omitted. - The functions of SQL SECURITY INVOKER and SECURITY INVOKER and AUTHID CURRENT_USER are the same. 
- SQL SECURITY DEFINER - Specifies that the stored procedure is to be executed with the privileges of the user that created it. - The functions of SQL SECURITY DEFINER and AUTHID DEFINER and SECURITY DEFINER are the same. 
- CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA - Syntax compatibility item.