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操作。