CREATE PROCEDURE

    注意事项

    • 创建存储过程时,存储过程定义中对表对象的操作建议都显示指定模式,否则可能会导致存储过程执行异常。
    • 在创建存储过程时,存储过程内部通过SET语句设置current_schema和search_path无效。执行完函数search_path和current_schema与执行函数前的search_path和current_schema保持一致。
    • 如果存储过程参数中带有出参,SELECT调用存储过程必须缺省出参,CALL调用存储过程调用非重载函数时必须指定出参,对于重载的package函数,out参数可以缺省,具体信息参见的示例。
    • 存储过程指定package属性时支持重载。
    • 在创建procedure时,不能在avg函数外面嵌套其他agg函数,或者其他系统函数。

    参数说明

    • OR REPLACE

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

    • argmode

      取值范围: IN,OUT,INOUT或VARIADIC。缺省值是IN。只有OUT模式的参数后面能跟VARIADIC。并且OUT和INOUT模式的参数不能用在RETURNS TABLE的过程定义中。

    • argname

      参数的名称。

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

    • argtype

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

    • IMMUTABLE、STABLE

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

    • plsql_body

      PL/SQL存储过程体。

    DROP PROCEDURE

    优化建议

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