广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Oracle数据库数据对象分析(下)

    2018-04-05 20:16:41 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布

      过程和函数

      过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。过程是作为一个独立执行语句调用的:

    pay_involume(invoice_nbr,30,due_date);

      函数以合法的表达式的方式调用:

    order_volumn:=open_orders(SYSDATE,30);

      创建过程的语法如下:

    CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name
    [parameter_lister]
    {AS|IS}
    declaration_section
    BEGIN
    executable_section
    [EXCEPTION
    exception_section]
    END [procedure_name] 

      每个参数的语法如下:

    paramter_name mode datatype [(:=|DEFAULT) value]

      mode有三种形式:IN、OUT、INOUT。

      IN表示在调用过程的时候,实际参数的取值被传递给该过程,形式参数被认为是只读的,当过程结束时,控制会返回控制环境,实际参数的值不会改变。

      OUT在调用过程时实际参数的取值都将被忽略,在过程内部形式参数只能是被赋值,而不能从中读取数据,在过程结束后形式参数的内容将被赋予实际参数。

      INOUT这种模式是IN和OUT的组合;在过程内部实际参数的值会传递给形式参数,形势参数的值可读也可写,过程结束后,形势参数的值将赋予实际参数。

      创建函数的语法和过程的语法基本相同,唯一的区别在于函数有RETUREN子句

    CREATE [ OR REPLACE] FINCTION [schema.]function_name
    [parameter_list]
    RETURN returning_datatype
    {AS|IS}
    declaration_section
    BEGIN
    executable_section
    [EXCEPTION]
    exception_section
    END [procedure_name] 

      在执行部分函数必须有哟个或多个return语句。

      在创建函数中可以调用单行函数和组函数,例如:

    CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER)
    RETURN NUMBER
    IS
    pi NUMBER=ACOS(-1);
    RadiansPerDegree NUMBER;

    BEGIN
    RadiansPerDegree=pi/180;
    RETURN(SIN(DegreesIn*RadiansPerDegree));
    END

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告