PL/SQL 存储过程/函数

PL-SQL 存储过程示例

存储过程

CREATE [OR REPLACE] PROCEDURE [schema.]procedure_name
[(argument { IN | OUT | IN OUT } [NOCOPY] datatype] , ... )]
[AUTHID {CURRENT_USER | DEFINER} ]
{ IS | AS }
{ plsql_code |
  LANGUAGE
  { JAVA NAME 'string' |
    C [NAME name] LIBRARY libname [WITH CONTEXT] [PARAMETERS params]]
  }
}
ALTER PROCEDURE [schema.]procedure_name COMPILE [DEBUG]
DROP PROCEDURE [schema.]procedure_name

函数

CREATE [OR REPLACE] FUNCTION [schema.]function_name
[(argument { IN | OUT | IN OUT } [NOCOPY] datatype] , ... )]
RETURN datetype
[AUTHID {CURRENT_USER | DEFINER} ]
{ IS | AS }
{ plsql_code |
  LANGUAGE
  { JAVA NAME 'string' | 
    C [NAME name] LIBRARY libname [WITH CONTEXT] [PARAMETERS params]]
  }
}
ALTER FUNCTION [schema.]procedure_name COMPILE [DEBUG]
DROP FUNCTION [schema.]procedure_name

关键词

关键词  描述
procedure_name 存储过程名
argument  参数名
IN 指定为输入参数
OUT 指定为输出参数
NOCOPY 参数为引用,不是传值
AUTHID  指定执行权限
CURRENT_USER  使用调用的用户权限
DEFINER 使用定义的用户权限,默认
plsql_code  PL/SQL 语句
LANGUAGE 指定该 PL/SQL 映射为过程 JAVA 或 C 过程
JAVA NAME 'string' 指定映射的 JAVA 实现
C NAME name 指定影射的 C 方法
LIBRARY libname 指定包含 C 程序的库名
WITH CONTEXT 指定包含 C 程序的内容指针
params 指定传递到 C 程序的参数
ALTER 重新编译
COMPILE 重新编译
DROP 删除存储过程/函数
RETURN 函数返回值