CREATE PROCEDURE

    注意事项

    • 如果创建存储过程时参数或返回值带有精度,不进行精度检测。
    • 创建存储过程时,存储过程定义中对表对象的操作建议都显示指定模式,否则可能会导致存储过程执行异常。
    • 在创建存储过程时,存储过程内部通过SET语句设置current_schema和search_path无效。执行完函数search_path和current_schema与执行函数前的search_path和current_schema保持一致。
    • 存储过程指定package属性时支持重载。
    • 在创建procedure时,不能在avg函数外面嵌套其他agg函数,或者其他系统函数。
    • 在存储过程内部调用其它无参数的存储过程时,可以省略括号,直接使用存储过程名进行调用。

    参数说明

    • OR REPLACE

      当存在同名的存储过程时,替换原来的定义。

    • procedure_name

      创建的存储过程名称,可以带有模式名。

      取值范围:字符串,要符合标识符的命名规范。

    • argmode

      参数的模式。

    • argname

      参数的名称。

      取值范围:字符串,要符合标识符的命名规范。

    • argtype

      参数的数据类型。

      取值范围:可用的数据类型。

    • configuration_parameter

      • from current

        取当前会话中的值设置为configuration_parameter的值。

    • IMMUTABLE、STABLE

      行为约束可选项。各参数的功能与CREATE FUNCTION类似,详细说明见CREATE FUNCTION

    • plsql_body

      PL/SQL存储过程体。

    优化建议

    • analyse | analyze
      • 不支持在事务或匿名块中执行analyze 。
      • 不支持在函数或存储过程中执行analyze操作。