zoukankan      html  css  js  c++  java
  • Oracle数据库学习笔记_oracle标量型函数、内联表值型函数和多声明表值型函数创建及应用

    1.创建标量型UDF,语法如下:

    CREATE FUNCTION [OWNER_NAME] FUNCTION_NAME

    ([{@PARAMETER_NAME SCALAR_PARAMETER_DATA_TYPE [= DEFAULT]} [,…N]])

    RETURNS SCALAR_RETURN_DATA_TYPE

    [WITH <FUNCTION_OPTION> [,…N]]

    [AS]

    BEGIN

    FUNCTION_BODY

    RETURN SCALAR_EXPRESSION

    END

    <FUNCTION_OPTION> ::=

    {ENCRYPTION|SCHEMABLNDING}

    各参数说明如下:

    OWNER_NAME:指定UDF的所有者;

    FUNCTION_NAME:指定UDF的名称。DATABASE_NAME.OWNER_NAME.FUNCTION_NAME应是唯一的。

    @PARAMETER_NAME:定义一个或多个参数的名称。一个函数最多可以定义1024个参数,每个参数前用@符号标明。参数的作用范围是整个函数,参数只能替代常量,不能替代表名,列名或其他数据库对象的名称。UDF不支持输出参数。

    2.创建内联表值型UDF,语法如下:

    CREATE FUNCTION [OWNER_NAME] FUNCTION_NAME

    ([{@PARAMETER_NAME SCALAR_PARAMETER_DATA_TYPE [=DEFAULT]}[,…N]])

    RETURNS TABLE

    [WITH <FUNCTION_OPTION> [,… ]]

    [AS]

    RETURN [() SELECT-STMT[]]

    各参数说明如下:

    TABLE:指定返回值为一个表。

    SELECT-STMT:单个SELECT语句,确定返回的表是数据。

    其余参数与标量型用户自定义函数相同。

    例如:创建返回所有订购某类产品的公司信息函数

    USE PANGU

    GO

    CREATE FUNCTION ORDERFIRMS(@PRODUCTID VARCHAR(30))

    RETURNS TABLE

    AS

    RETURN (SELECT F.FIRM_ID,F_NAME,F_INTRO

    FROM FIRMS F, ORDERS O

    WHERE F.FIRM_ID=O.FIRM_ID

    AND O.OEDER_ID IN (SELECT O.ORDER_ID

    FROM PRODUCTS P, ORDERS O

    WHERE P.P_ID=@PRODUCTID

    AND P.P_ID)=O.P_ID))

    GO

    --调用函数

    SELECT * FROM ORDERFIRMS(10030001)

    运行结果如下:



    3.创建多声明表值型UDF,语法如下:

    CREATE FUNCTION [OWNER_NAME] FUNCTION_NAME

    ([{@PARAMETER_NAME SCALAR_PARAMETER_DATA_TYPE [= DEFAULT]}[,…N]])

    RETURNS @RETURN_VARIBLE TABLE <TABLE_TYPE_DEFINITION>

    [WITH <FUNCTION_OPTION> [,…N]]

    [AS]

    BEGIN

    FUNCTION_BODY

    RETURN

    END

    <TABLE_TYPE_DEFINITION> ::=

    ({COLUMN_DEFINITION|TABLE_CONSTRAINT} [,…N])

    各参数说明如下:

    @RETURN_VARIABLE:一个TABLE类型的变量,用于存储和累积返回的表中的数据行。

    其余参数与标量型UDF相同。

  • 相关阅读:
    my functions.h
    MFC中GDI之CBitmap(位图)
    MFC中GDI之CFont(字体)
    MFC中GDI之CBrush(画刷)
    MFC中SDI设置状态栏显示时间
    MFC中自定义消息
    MFC常用控件类
    MFC中改变窗口大小MoveWindow...
    MFC中建立关联变量的几种方式
    软件默认端口整理
  • 原文地址:https://www.cnblogs.com/tongying/p/13203265.html
Copyright © 2011-2022 走看看