oracle进程与函数的差异分析
Oracle进程和函数以编译的形式存储在数据库中。函数可以没有参数或有多个参数,并且有一个返回值。该过程具有零个或多个参数,并且没有返回值。函数和过程可以通过参数列表接收或返回零或多个值。函数和过程之间的主要区别不是返回值,而是调用的方式,Oracle过程被称为独立的执行语句:
pay_involume(invoice_nbr,30,due_date);
该函数以合法表达式的方式调用:
order_volumn:= open_orders(SYSDATE,30);
创建过程的语法如下所示:
{或} {创建替换程序架构。} procedure_name
{ parameter_lister }
{是} |
declaration_section
开始
executable_section
{例外
exception_section }
最后procedure_name } {
每个参数的语法如下所示:
paramter_name模式类型{(:= |默认值})
有三种形式,模式,和进出。
在表示调用过程执行时,实际参数的值被传递到进程,而形式参数被视为只读。当过程结束时,控制将返回到控制环境,实际参数的值不会改变。
当调用时,实际参数的值将被忽略。在这个过程中,只能指定形式参数,但不能从它们中读取数据。过程完成后,将给出形式参数的内容,并给出实际参数。
输入是一个组合。在Oracle过程中,实际参数将被传递给形式参数,并且可以读取或写入情况参数的值。过程结束后,给出参数的实际情况参数。
创建一个函数的语法基本上是作为过程的语法相同,唯一不同的是,函数有一个返回的条款。
{或}函数创建替代{ } function_name图式。
{ parameter_list }
返回returning_datatype
{是} |
declaration_section
开始
executable_section
{异常}
exception_section
最后procedure_name } {
函数的执行部分中必须有一个或多个返回语句。
可以在创建函数中调用单行函数和组函数,例如:
创建或替换功能my_sin(DegreesIn数)
返回数
是
PI数= acos(- 1);
radiansperdegree数;
开始
radiansperdegree =π/ 180;
返回(sin(度* radiansperdegree));
结束